Skip to content

Commit e1a62bc

Browse files
committed
bugfix: Fix a couple of cases for inferred type and fix displaying exception
1 parent d3826f2 commit e1a62bc

File tree

8 files changed

+294
-196
lines changed

8 files changed

+294
-196
lines changed

metals/src/main/scala/scala/meta/internal/metals/Compilers.scala

-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ import org.eclipse.lsp4j.SignatureHelp
6161
import org.eclipse.lsp4j.TextDocumentIdentifier
6262
import org.eclipse.lsp4j.TextDocumentPositionParams
6363
import org.eclipse.lsp4j.TextEdit
64-
import org.eclipse.lsp4j.WorkspaceEdit
6564
import org.eclipse.lsp4j.jsonrpc.messages.{Either => JEither}
6665
import org.eclipse.lsp4j.{Position => LspPosition}
6766
import org.eclipse.lsp4j.{Range => LspRange}

metals/src/main/scala/scala/meta/internal/metals/codeactions/CreateNewSymbol.scala

+12-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ import scala.meta.internal.metals.ScalacDiagnostic
1111
import scala.meta.internal.metals.ServerCommands
1212
import scala.meta.internal.metals.clients.language.MetalsLanguageClient
1313
import scala.meta.internal.metals.codeactions.CodeAction
14+
import scala.meta.internal.metals.logging
1415
import scala.meta.pc.CancelToken
1516

1617
import org.eclipse.{lsp4j => l}
18+
import scala.meta.pc.CodeActionId
1719

1820
class CreateNewSymbol(
1921
compilers: Compilers,
@@ -27,16 +29,24 @@ class CreateNewSymbol(
2729
ServerCommands.InsertInferredMethod
2830
)
2931

32+
override def maybeCodeActionId: Option[String] = Some(CodeActionId.InsertInferredMethod)
33+
3034
override def handleCommand(
3135
textDocumentParams: l.TextDocumentPositionParams,
3236
token: CancelToken,
3337
)(implicit ec: ExecutionContext): Future[Unit] = {
3438
for {
35-
workspaceEdit <- compilers.codeAction(
39+
edits <- compilers.codeAction(
3640
textDocumentParams,
3741
token,
42+
CodeActionId.InsertInferredMethod,
43+
None
3844
)
39-
if (!workspaceEdit.getChanges().isEmpty())
45+
_ = logging.logErrorWhen(
46+
edits.isEmpty(),
47+
s"Could not infer method at ${textDocumentParams}",
48+
)
49+
workspaceEdit = new l.WorkspaceEdit(Map(textDocumentParams.getTextDocument().getUri() -> edits).asJava)
4050
_ <- languageClient
4151
.applyEdit(new l.ApplyWorkspaceEditParams(workspaceEdit))
4252
.asScala

mtags-java/src/main/scala/scala/meta/internal/pc/JavaPresentationCompiler.scala

-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ import org.eclipse.lsp4j.DocumentHighlight
3434
import org.eclipse.lsp4j.SelectionRange
3535
import org.eclipse.lsp4j.SignatureHelp
3636
import org.eclipse.lsp4j.TextEdit
37-
import org.eclipse.lsp4j.WorkspaceEdit
3837

3938
case class JavaPresentationCompiler(
4039
buildTargetIdentifier: String = "",

0 commit comments

Comments
 (0)