mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
Extracted Java code action titles to resources
This commit is contained in:
@@ -21,6 +21,7 @@ import com.google.common.collect.Iterables.toArray
|
||||
import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.androidide.utils.Logger
|
||||
import com.itsaky.lsp.java.JavaLanguageServer
|
||||
import com.itsaky.lsp.java.R
|
||||
import com.itsaky.lsp.java.rewrite.AddImport
|
||||
import com.itsaky.lsp.java.rewrite.Rewrite
|
||||
import com.itsaky.lsp.java.utils.JavaDiagnosticUtils
|
||||
@@ -30,13 +31,15 @@ import javax.tools.Diagnostic
|
||||
import javax.tools.JavaFileObject
|
||||
|
||||
/** @author Akash Yadav */
|
||||
class AddImportAction : BaseCodeAction() {
|
||||
class AddImportAction() : BaseCodeAction() {
|
||||
|
||||
override val id: String = "lsp_java_addImport"
|
||||
override var label: String = "Import class(es)"
|
||||
private val diagnosticCode = "compiler.err.cant.resolve.location"
|
||||
|
||||
private val log = Logger.newInstance("AddImportAction")
|
||||
|
||||
override val titleTextRes: Int = R.string.action_import_classes
|
||||
|
||||
override fun prepare(data: ActionData) {
|
||||
super.prepare(data)
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ package com.itsaky.lsp.java.actions
|
||||
import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.androidide.utils.Logger
|
||||
import com.itsaky.lsp.java.JavaLanguageServer
|
||||
import com.itsaky.lsp.java.R
|
||||
import com.itsaky.lsp.java.rewrite.AddException
|
||||
import com.itsaky.lsp.java.utils.CodeActionUtils
|
||||
import com.itsaky.lsp.models.DiagnosticItem
|
||||
@@ -27,10 +28,12 @@ import com.itsaky.lsp.models.DiagnosticItem
|
||||
/** @author Akash Yadav */
|
||||
class AddThrowsAction : BaseCodeAction() {
|
||||
override val id = "lsp_java_addThrows"
|
||||
override var label: String = "Add 'throws'"
|
||||
override var label: String = ""
|
||||
private val diagnosticCode = "compiler.err.unreported.exception.need.to.catch.or.throw"
|
||||
private val log = Logger.newInstance(javaClass.simpleName)
|
||||
|
||||
override val titleTextRes: Int = R.string.action_add_throws
|
||||
|
||||
override fun prepare(data: ActionData) {
|
||||
super.prepare(data)
|
||||
|
||||
|
||||
@@ -39,13 +39,20 @@ abstract class BaseCodeAction : ActionItem {
|
||||
override var requiresUIThread: Boolean = false
|
||||
override var location: ActionItem.Location = ActionItem.Location.EDITOR_CODE_ACTIONS
|
||||
|
||||
protected abstract val titleTextRes: Int
|
||||
|
||||
override fun prepare(data: ActionData) {
|
||||
|
||||
if (!hasRequiredData(data, JavaLanguageServer::class.java, File::class.java)) {
|
||||
if (!hasRequiredData(
|
||||
data, Context::class.java, JavaLanguageServer::class.java, File::class.java)) {
|
||||
markInvisible()
|
||||
return
|
||||
}
|
||||
|
||||
if (titleTextRes != -1) {
|
||||
label = data[Context::class.java]!!.getString(titleTextRes)
|
||||
}
|
||||
|
||||
val file = requireFile(data)
|
||||
visible = FileStore.isJavaFile(file.toPath())
|
||||
enabled = visible
|
||||
|
||||
@@ -18,18 +18,21 @@
|
||||
package com.itsaky.lsp.java.actions
|
||||
|
||||
import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.lsp.java.R
|
||||
|
||||
/** @author Akash Yadav */
|
||||
class CommentAction : BaseCodeAction() {
|
||||
override val id: String = "lsp_java_commentLine"
|
||||
override var label: String = "Comment line"
|
||||
override var label: String = ""
|
||||
|
||||
override val titleTextRes: Int = R.string.action_comment_line
|
||||
|
||||
override fun execAction(data: ActionData): Boolean {
|
||||
val editor = requireEditor(data)
|
||||
val text = editor.text
|
||||
val cursor = editor.cursor
|
||||
var line = cursor.leftLine
|
||||
|
||||
|
||||
text.beginBatchEdit()
|
||||
while (line >= cursor.leftLine && line <= cursor.rightLine) {
|
||||
if (!text.getLineString(line).trim { it <= ' ' }.startsWith("//")) {
|
||||
|
||||
@@ -20,6 +20,7 @@ package com.itsaky.lsp.java.actions
|
||||
import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.androidide.utils.Logger
|
||||
import com.itsaky.lsp.java.JavaLanguageServer
|
||||
import com.itsaky.lsp.java.R
|
||||
import com.itsaky.lsp.java.rewrite.CreateMissingMethod
|
||||
import com.itsaky.lsp.java.utils.CodeActionUtils.findPosition
|
||||
import com.itsaky.lsp.models.DiagnosticItem
|
||||
@@ -27,10 +28,12 @@ import com.itsaky.lsp.models.DiagnosticItem
|
||||
/** @author Akash Yadav */
|
||||
class CreateMissingMethodAction : BaseCodeAction() {
|
||||
override val id: String = "lsp_java_createMissingMethod"
|
||||
override var label: String = "Create missing method"
|
||||
override var label: String = ""
|
||||
private val diagnosticCode = "compiler.err.cant.resolve.location.args"
|
||||
private val log = Logger.newInstance(javaClass.simpleName)
|
||||
|
||||
override val titleTextRes: Int = R.string.action_create_missing_method
|
||||
|
||||
override fun prepare(data: ActionData) {
|
||||
super.prepare(data)
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ package com.itsaky.lsp.java.actions
|
||||
import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.androidide.utils.Logger
|
||||
import com.itsaky.lsp.java.JavaLanguageServer
|
||||
import com.itsaky.lsp.java.R
|
||||
import com.itsaky.lsp.java.rewrite.ConvertFieldToBlock
|
||||
import com.itsaky.lsp.java.utils.CodeActionUtils.findPosition
|
||||
import com.itsaky.lsp.models.DiagnosticItem
|
||||
@@ -28,10 +29,12 @@ import com.itsaky.lsp.models.DiagnosticItem
|
||||
class FieldToBlockAction : BaseCodeAction() {
|
||||
|
||||
override val id: String = "lsp_java_fieldToBlock"
|
||||
override var label: String = "Convert to block"
|
||||
override var label: String = ""
|
||||
private val diagnosticCode = "unused_field"
|
||||
private val log = Logger.newInstance(javaClass.simpleName)
|
||||
|
||||
override val titleTextRes: Int = R.string.action_convert_to_block
|
||||
|
||||
override fun prepare(data: ActionData) {
|
||||
super.prepare(data)
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ package com.itsaky.lsp.java.actions
|
||||
import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.androidide.utils.Logger
|
||||
import com.itsaky.lsp.java.JavaLanguageServer
|
||||
import com.itsaky.lsp.java.R
|
||||
import com.itsaky.lsp.java.rewrite.GenerateRecordConstructor
|
||||
import com.itsaky.lsp.java.utils.CodeActionUtils
|
||||
import com.itsaky.lsp.models.DiagnosticItem
|
||||
@@ -27,9 +28,10 @@ import com.itsaky.lsp.models.DiagnosticItem
|
||||
/** @author Akash Yadav */
|
||||
class GenerateConstructorAction : BaseCodeAction() {
|
||||
override val id = "lsp_java_generateConstructor"
|
||||
override var label: String = "Generate constructor"
|
||||
override var label: String = ""
|
||||
private val diagnosticCode = "compiler.err.var.not.initialized.in.default.constructor"
|
||||
private val log = Logger.newInstance(javaClass.simpleName)
|
||||
override val titleTextRes: Int = R.string.action_generate_constructor
|
||||
|
||||
override fun prepare(data: ActionData) {
|
||||
super.prepare(data)
|
||||
|
||||
+4
-1
@@ -22,6 +22,7 @@ import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.androidide.app.BaseApplication
|
||||
import com.itsaky.androidide.utils.Logger
|
||||
import com.itsaky.lsp.java.JavaLanguageServer
|
||||
import com.itsaky.lsp.java.R
|
||||
import com.itsaky.lsp.java.compiler.CompileTask
|
||||
import com.itsaky.lsp.java.utils.EditHelper
|
||||
import com.itsaky.lsp.java.utils.JavaPoetUtils.Companion.print
|
||||
@@ -44,9 +45,11 @@ import javax.lang.model.element.VariableElement
|
||||
/** @author Akash Yadav */
|
||||
class GenerateSettersAndGettersAction : BaseCodeAction() {
|
||||
override val id: String = "lsp_java_generateSettersAndGetters"
|
||||
override var label: String = "Generate setters/getters"
|
||||
override var label: String = ""
|
||||
private val log = Logger.newInstance(javaClass.simpleName)
|
||||
|
||||
override val titleTextRes: Int = R.string.action_generate_setters_getters
|
||||
|
||||
override fun prepare(data: ActionData) {
|
||||
super.prepare(data)
|
||||
|
||||
|
||||
+4
-1
@@ -20,6 +20,7 @@ package com.itsaky.lsp.java.actions
|
||||
import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.androidide.utils.Logger
|
||||
import com.itsaky.lsp.java.JavaLanguageServer
|
||||
import com.itsaky.lsp.java.R
|
||||
import com.itsaky.lsp.java.rewrite.ImplementAbstractMethods
|
||||
import com.itsaky.lsp.java.utils.JavaDiagnosticUtils
|
||||
import com.itsaky.lsp.models.DiagnosticItem
|
||||
@@ -30,10 +31,12 @@ import javax.tools.JavaFileObject
|
||||
/** @author Akash Yadav */
|
||||
class ImplementAbstractMethodsAction : BaseCodeAction() {
|
||||
override val id: String = "lsp_java_implementAbstractMethods"
|
||||
override var label: String = "Implement abstract method(s)"
|
||||
override var label: String = ""
|
||||
private var diagnosticCode = "compiler.err.does.not.override.abstract"
|
||||
private val log = Logger.newInstance(javaClass.simpleName)
|
||||
|
||||
override val titleTextRes: Int = R.string.action_implement_abstract_methods
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun prepare(data: ActionData) {
|
||||
super.prepare(data)
|
||||
|
||||
@@ -20,6 +20,7 @@ package com.itsaky.lsp.java.actions
|
||||
import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.androidide.utils.Logger
|
||||
import com.itsaky.lsp.java.JavaLanguageServer
|
||||
import com.itsaky.lsp.java.R
|
||||
import com.itsaky.lsp.java.rewrite.RemoveClass
|
||||
import com.itsaky.lsp.java.utils.CodeActionUtils.findPosition
|
||||
import com.itsaky.lsp.models.DiagnosticItem
|
||||
@@ -27,10 +28,12 @@ import com.itsaky.lsp.models.DiagnosticItem
|
||||
/** @author Akash Yadav */
|
||||
class RemoveClassAction : BaseCodeAction() {
|
||||
override val id: String = "lsp_java_removeClass"
|
||||
override var label: String = "Remove class"
|
||||
override var label: String = ""
|
||||
private val diagnosticCode = "unused_class"
|
||||
private val log = Logger.newInstance(javaClass.simpleName)
|
||||
|
||||
override val titleTextRes: Int = R.string.action_remove_class
|
||||
|
||||
override fun prepare(data: ActionData) {
|
||||
super.prepare(data)
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ package com.itsaky.lsp.java.actions
|
||||
import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.androidide.utils.Logger
|
||||
import com.itsaky.lsp.java.JavaLanguageServer
|
||||
import com.itsaky.lsp.java.R
|
||||
import com.itsaky.lsp.java.rewrite.RemoveMethod
|
||||
import com.itsaky.lsp.java.utils.CodeActionUtils.findMethod
|
||||
import com.itsaky.lsp.models.DiagnosticItem
|
||||
@@ -27,10 +28,12 @@ import com.itsaky.lsp.models.DiagnosticItem
|
||||
/** @author Akash Yadav */
|
||||
class RemoveMethodAction : BaseCodeAction() {
|
||||
override val id: String = "lsp_java_removeMethod"
|
||||
override var label: String = "Remove method"
|
||||
override var label: String = ""
|
||||
private val diagnosticCode = "unused_method"
|
||||
private val log = Logger.newInstance(javaClass.simpleName)
|
||||
|
||||
override val titleTextRes: Int = R.string.action_remove_method
|
||||
|
||||
override fun prepare(data: ActionData) {
|
||||
super.prepare(data)
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ package com.itsaky.lsp.java.actions
|
||||
import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.androidide.utils.Logger
|
||||
import com.itsaky.lsp.java.JavaLanguageServer
|
||||
import com.itsaky.lsp.java.R
|
||||
import com.itsaky.lsp.java.rewrite.RemoveException
|
||||
import com.itsaky.lsp.java.utils.CodeActionUtils
|
||||
import com.itsaky.lsp.models.DiagnosticItem
|
||||
@@ -27,10 +28,12 @@ import com.itsaky.lsp.models.DiagnosticItem
|
||||
/** @author Akash Yadav */
|
||||
class RemoveUnusedThrowsAction : BaseCodeAction() {
|
||||
override val id: String = "lsp_java_removeUnusedThrows"
|
||||
override var label: String = "Remove unused throws"
|
||||
override var label: String = ""
|
||||
private val diagnosticCode = "unused_throws"
|
||||
private val log = Logger.newInstance(javaClass.simpleName)
|
||||
|
||||
override val titleTextRes: Int = R.string.action_remove_unused_throws
|
||||
|
||||
override fun prepare(data: ActionData) {
|
||||
super.prepare(data)
|
||||
|
||||
|
||||
+4
-1
@@ -20,6 +20,7 @@ package com.itsaky.lsp.java.actions
|
||||
import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.androidide.utils.Logger
|
||||
import com.itsaky.lsp.java.JavaLanguageServer
|
||||
import com.itsaky.lsp.java.R
|
||||
import com.itsaky.lsp.java.rewrite.AddSuppressWarningAnnotation
|
||||
import com.itsaky.lsp.java.utils.CodeActionUtils
|
||||
import com.itsaky.lsp.models.DiagnosticItem
|
||||
@@ -27,10 +28,12 @@ import com.itsaky.lsp.models.DiagnosticItem
|
||||
/** @author Akash Yadav */
|
||||
class SuppressUncheckedWarningAction : BaseCodeAction() {
|
||||
override val id = "lsp_java_suppressUncheckedWarning"
|
||||
override var label: String = "Suppress 'unchecked' warning"
|
||||
override var label: String = ""
|
||||
private val diagnosticCode = "compiler.warn.unchecked.call.mbr.of.raw.type"
|
||||
private val log = Logger.newInstance(javaClass.simpleName)
|
||||
|
||||
override val titleTextRes: Int = R.string.action_suppress_unchecked_warning
|
||||
|
||||
override fun prepare(data: ActionData) {
|
||||
super.prepare(data)
|
||||
|
||||
|
||||
@@ -18,11 +18,14 @@
|
||||
package com.itsaky.lsp.java.actions
|
||||
|
||||
import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.lsp.java.R
|
||||
|
||||
/** @author Akash Yadav */
|
||||
class UncommentAction : BaseCodeAction() {
|
||||
override val id: String = "lsp_java_uncommentLine"
|
||||
override var label: String = "Uncomment line"
|
||||
override var label: String = ""
|
||||
|
||||
override val titleTextRes: Int = R.string.action_uncomment_line
|
||||
|
||||
override fun execAction(data: ActionData): Boolean {
|
||||
val editor = requireEditor(data)
|
||||
|
||||
@@ -20,6 +20,7 @@ package com.itsaky.lsp.java.actions
|
||||
import com.itsaky.androidide.actions.ActionData
|
||||
import com.itsaky.androidide.utils.Logger
|
||||
import com.itsaky.lsp.java.JavaLanguageServer
|
||||
import com.itsaky.lsp.java.R
|
||||
import com.itsaky.lsp.java.rewrite.ConvertVariableToStatement
|
||||
import com.itsaky.lsp.java.utils.CodeActionUtils.findPosition
|
||||
import com.itsaky.lsp.models.DiagnosticItem
|
||||
@@ -28,9 +29,11 @@ import java.io.File
|
||||
/** @author Akash Yadav */
|
||||
class VariableToStatementAction : BaseCodeAction() {
|
||||
override val id: String = "lsp_java_variableToStatement"
|
||||
override var label: String = "Convert to statement"
|
||||
override var label: String = ""
|
||||
private val diagnosticCode = "unused_local"
|
||||
private val log = Logger.newInstance(javaClass.simpleName)
|
||||
|
||||
override val titleTextRes: Int = R.string.action_convert_to_statement
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun prepare(data: ActionData) {
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
~ This file is part of AndroidIDE.
|
||||
~
|
||||
~ AndroidIDE is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ AndroidIDE is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<string name="action_import_classes">Import class(es)</string>
|
||||
<string name="action_generate_setters_getters">Generate setters/getters</string>
|
||||
<string name="action_add_throws">Add \'throws\'</string>
|
||||
<string name="action_comment_line">Comment line</string>
|
||||
<string name="action_create_missing_method">Create missing method</string>
|
||||
<string name="action_convert_to_block">Convert to block</string>
|
||||
<string name="action_generate_constructor">Generate constructor</string>
|
||||
<string name="action_implement_abstract_methods">Implement abstract method(s)</string>
|
||||
<string name="action_remove_class">Remove class</string>
|
||||
<string name="action_remove_method">Remove method</string>
|
||||
<string name="action_remove_unused_throws">Remove unused throws</string>
|
||||
<string name="action_suppress_unchecked_warning">Suppress \'unchecked\' warning</string>
|
||||
<string name="action_uncomment_line">Uncomment line</string>
|
||||
<string name="action_convert_to_statement">Convert to statement</string>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user