From eb2cdb82fe27cb749c7433b0430354db5b69aabd Mon Sep 17 00:00:00 2001 From: Kacper Korban Date: Wed, 11 Sep 2024 14:23:32 +0200 Subject: [PATCH] Change the codeAction method signature --- .../scala/meta/internal/metals/Compilers.scala | 5 ++--- .../metals/codeactions/CodeAction.scala | 3 +-- .../codeactions/CodeActionProvider.scala | 18 +++--------------- .../codeactions/ConvertToNamedArguments.scala | 5 ++--- .../codeactions/ExtractMethodCodeAction.scala | 5 ++--- .../codeactions/ImplementAbstractMembers.scala | 5 ++--- .../codeactions/ImportMissingSymbol.scala | 5 ++--- .../codeactions/InlineValueCodeAction.scala | 5 ++--- .../codeactions/InsertInferredType.scala | 5 ++--- .../main/java/scala/meta/pc/CodeActionId.java | 10 ---------- .../scala/meta/pc/PresentationCompiler.java | 16 ++++++++-------- 11 files changed, 26 insertions(+), 56 deletions(-) delete mode 100644 mtags-interfaces/src/main/java/scala/meta/pc/CodeActionId.java diff --git a/metals/src/main/scala/scala/meta/internal/metals/Compilers.scala b/metals/src/main/scala/scala/meta/internal/metals/Compilers.scala index 4bf2077d709..12f060adba8 100644 --- a/metals/src/main/scala/scala/meta/internal/metals/Compilers.scala +++ b/metals/src/main/scala/scala/meta/internal/metals/Compilers.scala @@ -31,7 +31,6 @@ import scala.meta.internal.{semanticdb => s} import scala.meta.io.AbsolutePath import scala.meta.pc.AutoImportsResult import scala.meta.pc.CancelToken -import scala.meta.pc.CodeActionId import scala.meta.pc.CompletionItemPriority import scala.meta.pc.HoverSignature import scala.meta.pc.OffsetParams @@ -884,7 +883,7 @@ class Compilers( def codeAction( params: TextDocumentPositionParams, token: CancelToken, - codeActionId: CodeActionId, + codeActionId: String, codeActionPayload: Object, ): Future[ju.List[TextEdit]] = { withPCAndAdjustLsp(params) { (pc, pos, adjust) => @@ -903,7 +902,7 @@ class Compilers( } }.getOrElse(Future.successful(Nil.asJava)) - def supportedCodeActions(path: AbsolutePath): ju.List[CodeActionId] = { + def supportedCodeActions(path: AbsolutePath): ju.List[String] = { loadCompiler(path).map { pc => pc.supportedCodeActions() } diff --git a/metals/src/main/scala/scala/meta/internal/metals/codeactions/CodeAction.scala b/metals/src/main/scala/scala/meta/internal/metals/codeactions/CodeAction.scala index 1c9b38bb33d..79a6f55325f 100644 --- a/metals/src/main/scala/scala/meta/internal/metals/codeactions/CodeAction.scala +++ b/metals/src/main/scala/scala/meta/internal/metals/codeactions/CodeAction.scala @@ -7,7 +7,6 @@ import scala.concurrent.Future import scala.meta.internal.metals.MetalsEnrichments._ import scala.meta.internal.metals.ParametrizedCommand import scala.meta.pc.CancelToken -import scala.meta.pc.CodeActionId import org.eclipse.{lsp4j => l} @@ -23,7 +22,7 @@ trait CodeAction { * The CodeActionId for this code action, if applicable. CodeActionId is only * used for code actions that require the use of the presentation compiler. */ - def maybeCodeActionId: Option[CodeActionId] = None + def maybeCodeActionId: Option[String] = None type CommandData type ActionCommand = ParametrizedCommand[CommandData] diff --git a/metals/src/main/scala/scala/meta/internal/metals/codeactions/CodeActionProvider.scala b/metals/src/main/scala/scala/meta/internal/metals/codeactions/CodeActionProvider.scala index 16355d2ce41..c084717014a 100644 --- a/metals/src/main/scala/scala/meta/internal/metals/codeactions/CodeActionProvider.scala +++ b/metals/src/main/scala/scala/meta/internal/metals/codeactions/CodeActionProvider.scala @@ -33,27 +33,15 @@ final class CodeActionProvider( new ActionableDiagnostic(), new StringActions(buffers), extractMemberAction, - new SourceOrganizeImports( - scalafixProvider, - buildTargets, - diagnostics, - ), - new OrganizeImportsQuickFix( - scalafixProvider, - buildTargets, - diagnostics, - ), + new SourceOrganizeImports(scalafixProvider, buildTargets, diagnostics), + new OrganizeImportsQuickFix(scalafixProvider, buildTargets, diagnostics), new InsertInferredType(trees, compilers, languageClient), new PatternMatchRefactor(trees), new RewriteBracesParensCodeAction(trees), new ExtractValueCodeAction(trees, buffers), new CreateCompanionObjectCodeAction(trees, buffers), new ExtractMethodCodeAction(trees, compilers, languageClient), - new InlineValueCodeAction( - trees, - compilers, - languageClient, - ), + new InlineValueCodeAction(trees, compilers, languageClient), new ConvertToNamedArguments(trees, compilers, languageClient), new FlatMapToForComprehensionCodeAction(trees, buffers), new MillifyDependencyCodeAction(buffers), diff --git a/metals/src/main/scala/scala/meta/internal/metals/codeactions/ConvertToNamedArguments.scala b/metals/src/main/scala/scala/meta/internal/metals/codeactions/ConvertToNamedArguments.scala index d110bef5232..dcd5ed10041 100644 --- a/metals/src/main/scala/scala/meta/internal/metals/codeactions/ConvertToNamedArguments.scala +++ b/metals/src/main/scala/scala/meta/internal/metals/codeactions/ConvertToNamedArguments.scala @@ -16,7 +16,6 @@ import scala.meta.internal.metals.codeactions.CodeActionBuilder import scala.meta.internal.metals.logging import scala.meta.internal.parsing.Trees import scala.meta.pc.CancelToken -import scala.meta.pc.CodeActionId import org.eclipse.{lsp4j => l} @@ -29,8 +28,8 @@ class ConvertToNamedArguments( import ConvertToNamedArguments._ override val kind: String = l.CodeActionKind.RefactorRewrite - override val maybeCodeActionId: Option[CodeActionId] = Some( - CodeActionId.ConvertToNamedArguments + override val maybeCodeActionId: Option[String] = Some( + "ConvertToNamedArguments" ) override type CommandData = ServerCommands.ConvertToNamedArgsRequest diff --git a/metals/src/main/scala/scala/meta/internal/metals/codeactions/ExtractMethodCodeAction.scala b/metals/src/main/scala/scala/meta/internal/metals/codeactions/ExtractMethodCodeAction.scala index b11988e3ad4..0eed8da0bd2 100644 --- a/metals/src/main/scala/scala/meta/internal/metals/codeactions/ExtractMethodCodeAction.scala +++ b/metals/src/main/scala/scala/meta/internal/metals/codeactions/ExtractMethodCodeAction.scala @@ -15,7 +15,6 @@ import scala.meta.internal.metals.clients.language.MetalsLanguageClient import scala.meta.internal.metals.logging import scala.meta.internal.parsing.Trees import scala.meta.pc.CancelToken -import scala.meta.pc.CodeActionId import org.eclipse.lsp4j.CodeActionParams import org.eclipse.{lsp4j => l} @@ -33,8 +32,8 @@ class ExtractMethodCodeAction( ) override def kind: String = l.CodeActionKind.RefactorExtract - override val maybeCodeActionId: Option[CodeActionId] = Some( - CodeActionId.ExtractMethod + override val maybeCodeActionId: Option[String] = Some( + "ExtractMethod" ) override def handleCommand( diff --git a/metals/src/main/scala/scala/meta/internal/metals/codeactions/ImplementAbstractMembers.scala b/metals/src/main/scala/scala/meta/internal/metals/codeactions/ImplementAbstractMembers.scala index ac5915f31b5..8ac155cc812 100644 --- a/metals/src/main/scala/scala/meta/internal/metals/codeactions/ImplementAbstractMembers.scala +++ b/metals/src/main/scala/scala/meta/internal/metals/codeactions/ImplementAbstractMembers.scala @@ -8,7 +8,6 @@ import scala.meta.internal.metals.MetalsEnrichments._ import scala.meta.internal.metals.ScalacDiagnostic import scala.meta.internal.metals.codeactions.CodeAction import scala.meta.pc.CancelToken -import scala.meta.pc.CodeActionId import org.eclipse.{lsp4j => l} @@ -16,8 +15,8 @@ class ImplementAbstractMembers(compilers: Compilers) extends CodeAction { override def kind: String = l.CodeActionKind.QuickFix - override val maybeCodeActionId: Option[CodeActionId] = Some( - CodeActionId.ImplementAbstractMembers + override val maybeCodeActionId: Option[String] = Some( + "ImplementAbstractMembers" ) override def contribute( diff --git a/metals/src/main/scala/scala/meta/internal/metals/codeactions/ImportMissingSymbol.scala b/metals/src/main/scala/scala/meta/internal/metals/codeactions/ImportMissingSymbol.scala index 9799e30491b..baf503c2573 100644 --- a/metals/src/main/scala/scala/meta/internal/metals/codeactions/ImportMissingSymbol.scala +++ b/metals/src/main/scala/scala/meta/internal/metals/codeactions/ImportMissingSymbol.scala @@ -10,7 +10,6 @@ import scala.meta.internal.metals.ScalaVersions import scala.meta.internal.metals.ScalacDiagnostic import scala.meta.internal.metals.codeactions.CodeAction import scala.meta.pc.CancelToken -import scala.meta.pc.CodeActionId import org.eclipse.{lsp4j => l} @@ -19,8 +18,8 @@ class ImportMissingSymbol(compilers: Compilers, buildTargets: BuildTargets) override def kind: String = l.CodeActionKind.QuickFix - override val maybeCodeActionId: Option[CodeActionId] = Some( - CodeActionId.ImportMissingSymbol + override val maybeCodeActionId: Option[String] = Some( + "ImportMissingSymbol" ) override def contribute( diff --git a/metals/src/main/scala/scala/meta/internal/metals/codeactions/InlineValueCodeAction.scala b/metals/src/main/scala/scala/meta/internal/metals/codeactions/InlineValueCodeAction.scala index b1d6adad21c..6eccd72a2c0 100644 --- a/metals/src/main/scala/scala/meta/internal/metals/codeactions/InlineValueCodeAction.scala +++ b/metals/src/main/scala/scala/meta/internal/metals/codeactions/InlineValueCodeAction.scala @@ -16,7 +16,6 @@ import scala.meta.internal.metals.codeactions.CodeAction import scala.meta.internal.parsing.Trees import scala.meta.io.AbsolutePath import scala.meta.pc.CancelToken -import scala.meta.pc.CodeActionId import org.eclipse.{lsp4j => l} @@ -33,8 +32,8 @@ class InlineValueCodeAction( override def kind: String = l.CodeActionKind.RefactorInline - override val maybeCodeActionId: Option[CodeActionId] = Some( - CodeActionId.InlineValue + override val maybeCodeActionId: Option[String] = Some( + "InlineValue" ) override def contribute(params: l.CodeActionParams, token: CancelToken)( diff --git a/metals/src/main/scala/scala/meta/internal/metals/codeactions/InsertInferredType.scala b/metals/src/main/scala/scala/meta/internal/metals/codeactions/InsertInferredType.scala index 4e3fa6b8aff..36592d71eb4 100644 --- a/metals/src/main/scala/scala/meta/internal/metals/codeactions/InsertInferredType.scala +++ b/metals/src/main/scala/scala/meta/internal/metals/codeactions/InsertInferredType.scala @@ -16,7 +16,6 @@ import scala.meta.internal.metals.codeactions.CodeAction import scala.meta.internal.metals.codeactions.CodeActionBuilder import scala.meta.internal.parsing.Trees import scala.meta.pc.CancelToken -import scala.meta.pc.CodeActionId import org.eclipse.{lsp4j => l} @@ -34,8 +33,8 @@ class InsertInferredType( import InsertInferredType._ override def kind: String = l.CodeActionKind.QuickFix - override val maybeCodeActionId: Option[CodeActionId] = Some( - CodeActionId.InsertInferredType + override val maybeCodeActionId: Option[String] = Some( + "InsertInferredType" ) override def handleCommand( diff --git a/mtags-interfaces/src/main/java/scala/meta/pc/CodeActionId.java b/mtags-interfaces/src/main/java/scala/meta/pc/CodeActionId.java deleted file mode 100644 index f28a992006a..00000000000 --- a/mtags-interfaces/src/main/java/scala/meta/pc/CodeActionId.java +++ /dev/null @@ -1,10 +0,0 @@ -package scala.meta.pc; - -public enum CodeActionId { - ConvertToNamedArguments, - ExtractMethod, - ImplementAbstractMembers, - ImportMissingSymbol, - InlineValue, - InsertInferredType, -} diff --git a/mtags-interfaces/src/main/java/scala/meta/pc/PresentationCompiler.java b/mtags-interfaces/src/main/java/scala/meta/pc/PresentationCompiler.java index d5e225fbc0b..23fc875fae8 100644 --- a/mtags-interfaces/src/main/java/scala/meta/pc/PresentationCompiler.java +++ b/mtags-interfaces/src/main/java/scala/meta/pc/PresentationCompiler.java @@ -115,21 +115,21 @@ public CompletableFuture> references(References /** * Execute the given code action */ - public CompletableFuture> codeAction(OffsetParams params, CodeActionId codeActionId, Object codeActionPayload) { + public CompletableFuture> codeAction(OffsetParams params, String codeActionId, Object codeActionPayload) { return CompletableFuture.completedFuture(Collections.emptyList()); } /** * Returns the list of code actions supported by the current presentation compiler. */ - public List supportedCodeActions() { + public List supportedCodeActions() { return Arrays.asList( - CodeActionId.ConvertToNamedArguments, - CodeActionId.ExtractMethod, - CodeActionId.ImplementAbstractMembers, - CodeActionId.ImportMissingSymbol, - CodeActionId.InlineValue, - CodeActionId.InsertInferredType + "ConvertToNamedArguments", + "ExtractMethod", + "ImplementAbstractMembers", + "ImportMissingSymbol", + "InlineValue", + "InsertInferredType" ); }