public final class org.graalvm.tools.lsp.server.TruffleAdapter implements org.graalvm.tools.lsp.server.VirtualLanguageServerFileProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.tools.lsp.server.TruffleAdapter
  super_class: java.lang.Object
{
  private final boolean developerMode;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.TruffleLogger logger;
    descriptor: Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.instrumentation.TruffleInstrument$Env envMain;
    descriptor: Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.oracle.truffle.api.instrumentation.TruffleInstrument$Env envInternal;
    descriptor: Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
    flags: (0x0002) ACC_PRIVATE

  org.graalvm.tools.lsp.server.ContextAwareExecutor contextAwareExecutor;
    descriptor: Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
    flags: (0x0000) 

  private org.graalvm.tools.lsp.server.request.SourceCodeEvaluator sourceCodeEvaluator;
    descriptor: Lorg/graalvm/tools/lsp/server/request/SourceCodeEvaluator;
    flags: (0x0002) ACC_PRIVATE

  org.graalvm.tools.lsp.server.request.CompletionRequestHandler completionHandler;
    descriptor: Lorg/graalvm/tools/lsp/server/request/CompletionRequestHandler;
    flags: (0x0000) 

  private org.graalvm.tools.lsp.server.request.HoverRequestHandler hoverHandler;
    descriptor: Lorg/graalvm/tools/lsp/server/request/HoverRequestHandler;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.tools.lsp.server.request.SignatureHelpRequestHandler signatureHelpHandler;
    descriptor: Lorg/graalvm/tools/lsp/server/request/SignatureHelpRequestHandler;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.tools.lsp.server.request.CoverageRequestHandler coverageHandler;
    descriptor: Lorg/graalvm/tools/lsp/server/request/CoverageRequestHandler;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.tools.lsp.server.request.HighlightRequestHandler highlightHandler;
    descriptor: Lorg/graalvm/tools/lsp/server/request/HighlightRequestHandler;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<org.graalvm.tools.api.lsp.LSPCommand> extensionCommands;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lorg/graalvm/tools/api/lsp/LSPCommand;>;

  private org.graalvm.tools.api.lsp.LSPServerAccessor lspServer;
    descriptor: Lorg/graalvm/tools/api/lsp/LSPServerAccessor;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.tools.lsp.server.utils.TextDocumentSurrogateMap surrogateMap;
    descriptor: Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
    flags: (0x0002) ACC_PRIVATE

  private final org.graalvm.tools.lsp.server.LanguageTriggerCharacters completionTriggerCharacters;
    descriptor: Lorg/graalvm/tools/lsp/server/LanguageTriggerCharacters;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.tools.lsp.server.LanguageTriggerCharacters signatureTriggerCharacters;
    descriptor: Lorg/graalvm/tools/lsp/server/LanguageTriggerCharacters;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env, boolean);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env mainEnv
        start local 2 // boolean developerMode
         0: .line 108
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 105
            aload 0 /* this */
            new org.graalvm.tools.lsp.server.LanguageTriggerCharacters
            dup
            invokespecial org.graalvm.tools.lsp.server.LanguageTriggerCharacters.<init>:()V
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.completionTriggerCharacters:Lorg/graalvm/tools/lsp/server/LanguageTriggerCharacters;
         2: .line 106
            aload 0 /* this */
            new org.graalvm.tools.lsp.server.LanguageTriggerCharacters
            dup
            invokespecial org.graalvm.tools.lsp.server.LanguageTriggerCharacters.<init>:()V
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.signatureTriggerCharacters:Lorg/graalvm/tools/lsp/server/LanguageTriggerCharacters;
         3: .line 109
            aload 0 /* this */
            aload 1 /* mainEnv */
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.envMain:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
         4: .line 110
            aload 0 /* this */
            iload 2 /* developerMode */
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.developerMode:Z
         5: .line 111
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envMain:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            ldc ""
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getLogger:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLogger;
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.logger:Lcom/oracle/truffle/api/TruffleLogger;
         6: .line 112
            return
        end local 2 // boolean developerMode
        end local 1 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env mainEnv
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    7     1        mainEnv  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    7     2  developerMode  Z
    MethodParameters:
               Name  Flags
      mainEnv        
      developerMode  

  public void register(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env, org.graalvm.tools.lsp.server.ContextAwareExecutor);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env environment
        start local 2 // org.graalvm.tools.lsp.server.ContextAwareExecutor executor
         0: .line 115
            aload 0 /* this */
            aload 1 /* environment */
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.envInternal:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
         1: .line 116
            aload 0 /* this */
            aload 2 /* executor */
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
         2: .line 117
            aload 0 /* this */
            invokevirtual org.graalvm.tools.lsp.server.TruffleAdapter.initSurrogateMap:()V
         3: .line 118
            aload 0 /* this */
            invokevirtual org.graalvm.tools.lsp.server.TruffleAdapter.createLSPRequestHandlers:()V
         4: .line 119
            return
        end local 2 // org.graalvm.tools.lsp.server.ContextAwareExecutor executor
        end local 1 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env environment
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    5     1  environment  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    5     2     executor  Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
    MethodParameters:
             Name  Flags
      environment  
      executor     

  public com.oracle.truffle.api.TruffleLogger getLogger();
    descriptor: ()Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 122
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.logger:Lcom/oracle/truffle/api/TruffleLogger;
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;

  private void createLSPRequestHandlers();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=1, args_size=1
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 126
            aload 0 /* this */
            new org.graalvm.tools.lsp.server.request.SourceCodeEvaluator
            dup
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envMain:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envInternal:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            invokespecial org.graalvm.tools.lsp.server.request.SourceCodeEvaluator.<init>:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;)V
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.sourceCodeEvaluator:Lorg/graalvm/tools/lsp/server/request/SourceCodeEvaluator;
         1: .line 127
            aload 0 /* this */
            new org.graalvm.tools.lsp.server.request.CompletionRequestHandler
            dup
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envMain:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envInternal:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.sourceCodeEvaluator:Lorg/graalvm/tools/lsp/server/request/SourceCodeEvaluator;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.completionTriggerCharacters:Lorg/graalvm/tools/lsp/server/LanguageTriggerCharacters;
            invokespecial org.graalvm.tools.lsp.server.request.CompletionRequestHandler.<init>:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;Lorg/graalvm/tools/lsp/server/request/SourceCodeEvaluator;Lorg/graalvm/tools/lsp/server/LanguageTriggerCharacters;)V
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.completionHandler:Lorg/graalvm/tools/lsp/server/request/CompletionRequestHandler;
         2: .line 128
            aload 0 /* this */
            new org.graalvm.tools.lsp.server.request.HoverRequestHandler
            dup
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envMain:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envInternal:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.completionHandler:Lorg/graalvm/tools/lsp/server/request/CompletionRequestHandler;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.developerMode:Z
            invokespecial org.graalvm.tools.lsp.server.request.HoverRequestHandler.<init>:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;Lorg/graalvm/tools/lsp/server/request/CompletionRequestHandler;Z)V
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.hoverHandler:Lorg/graalvm/tools/lsp/server/request/HoverRequestHandler;
         3: .line 129
            aload 0 /* this */
            new org.graalvm.tools.lsp.server.request.SignatureHelpRequestHandler
            dup
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envMain:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envInternal:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.sourceCodeEvaluator:Lorg/graalvm/tools/lsp/server/request/SourceCodeEvaluator;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.completionHandler:Lorg/graalvm/tools/lsp/server/request/CompletionRequestHandler;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.signatureTriggerCharacters:Lorg/graalvm/tools/lsp/server/LanguageTriggerCharacters;
            invokespecial org.graalvm.tools.lsp.server.request.SignatureHelpRequestHandler.<init>:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;Lorg/graalvm/tools/lsp/server/request/SourceCodeEvaluator;Lorg/graalvm/tools/lsp/server/request/CompletionRequestHandler;Lorg/graalvm/tools/lsp/server/LanguageTriggerCharacters;)V
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.signatureHelpHandler:Lorg/graalvm/tools/lsp/server/request/SignatureHelpRequestHandler;
         4: .line 130
            aload 0 /* this */
            new org.graalvm.tools.lsp.server.request.CoverageRequestHandler
            dup
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envMain:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envInternal:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.sourceCodeEvaluator:Lorg/graalvm/tools/lsp/server/request/SourceCodeEvaluator;
            invokespecial org.graalvm.tools.lsp.server.request.CoverageRequestHandler.<init>:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;Lorg/graalvm/tools/lsp/server/request/SourceCodeEvaluator;)V
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.coverageHandler:Lorg/graalvm/tools/lsp/server/request/CoverageRequestHandler;
         5: .line 131
            aload 0 /* this */
            new org.graalvm.tools.lsp.server.request.HighlightRequestHandler
            dup
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envMain:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envInternal:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            invokespecial org.graalvm.tools.lsp.server.request.HighlightRequestHandler.<init>:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;)V
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.highlightHandler:Lorg/graalvm/tools/lsp/server/request/HighlightRequestHandler;
         6: .line 132
            return
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;

  private void initSurrogateMap();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 136
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$0()Ljava/lang/Object; (7)
                  ()Ljava/lang/Object;
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithDefaultContext:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
         1: .line 139
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
         2: .line 141
            aload 0 /* this */
            new org.graalvm.tools.lsp.server.utils.TextDocumentSurrogateMap
            dup
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envInternal:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            invokespecial org.graalvm.tools.lsp.server.utils.TextDocumentSurrogateMap.<init>:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
         3: .line 142
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Exception
         4: astore 1 /* e */
        start local 1 // java.lang.Exception e
         5: .line 143
            new java.lang.RuntimeException
            dup
            aload 1 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
         6: .line 145
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            5    6     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.InterruptedException
           0     3       4  Class java.util.concurrent.ExecutionException

  org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate getOrCreateSurrogate(java.net.URI, java.lang.String, com.oracle.truffle.api.nodes.LanguageInfo);
    descriptor: (Ljava/net/URI;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.net.URI uri
        start local 2 // java.lang.String text
        start local 3 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
         0: .line 148
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 1 /* uri */
            aload 3 /* languageInfo */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogateMap.getOrCreateSurrogate:(Ljava/net/URI;Lcom/oracle/truffle/api/nodes/LanguageInfo;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
            astore 4 /* surrogate */
        start local 4 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
         1: .line 149
            aload 4 /* surrogate */
            aload 2 /* text */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate.setEditorText:(Ljava/lang/String;)V
         2: .line 150
            aload 4 /* surrogate */
            areturn
        end local 4 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
        end local 3 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
        end local 2 // java.lang.String text
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    3     1           uri  Ljava/net/URI;
            0    3     2          text  Ljava/lang/String;
            0    3     3  languageInfo  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            1    3     4     surrogate  Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
    MethodParameters:
              Name  Flags
      uri           
      text          
      languageInfo  

  public void didClose(java.net.URI);
    descriptor: (Ljava/net/URI;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.net.URI uri
         0: .line 154
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 1 /* uri */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogateMap.remove:(Ljava/net/URI;)V
         1: .line 155
            return
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    2     1   uri  Ljava/net/URI;
    MethodParameters:
      Name  Flags
      uri   

  public java.util.concurrent.Future<com.oracle.truffle.api.CallTarget> parse(java.lang.String, java.lang.String, java.net.URI);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/net/URI;)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.lang.String text
        start local 2 // java.lang.String langId
        start local 3 // java.net.URI uri
         0: .line 158
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            aload 1 /* text */
            aload 2 /* langId */
            aload 3 /* uri */
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Ljava/lang/String;Ljava/lang/String;Ljava/net/URI;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$1(Ljava/lang/String;Ljava/lang/String;Ljava/net/URI;)Lcom/oracle/truffle/api/CallTarget; (7)
                  ()Lcom/oracle/truffle/api/CallTarget;
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithDefaultContext:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            areturn
        end local 3 // java.net.URI uri
        end local 2 // java.lang.String langId
        end local 1 // java.lang.String text
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    1     1    text  Ljava/lang/String;
            0    1     2  langId  Ljava/lang/String;
            0    1     3     uri  Ljava/net/URI;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/net/URI;)Ljava/util/concurrent/Future<Lcom/oracle/truffle/api/CallTarget;>;
    MethodParameters:
        Name  Flags
      text    final
      langId  final
      uri     final

  protected com.oracle.truffle.api.CallTarget parseWithEnteredContext(java.lang.String, java.lang.String, java.net.URI);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/net/URI;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.lang.String text
        start local 2 // java.lang.String langId
        start local 3 // java.net.URI uri
         0: .line 162
            aload 0 /* this */
            aload 2 /* langId */
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envInternal:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 3 /* uri */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getTruffleFile:(Ljava/net/URI;)Lcom/oracle/truffle/api/TruffleFile;
            invokevirtual org.graalvm.tools.lsp.server.TruffleAdapter.findLanguageInfo:(Ljava/lang/String;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
            astore 4 /* languageInfo */
        start local 4 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
         1: .line 163
            aload 0 /* this */
            aload 3 /* uri */
            aload 1 /* text */
            aload 4 /* languageInfo */
            invokevirtual org.graalvm.tools.lsp.server.TruffleAdapter.getOrCreateSurrogate:(Ljava/net/URI;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
            astore 5 /* surrogate */
        start local 5 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
         2: .line 164
            aload 0 /* this */
            aload 5 /* surrogate */
            invokevirtual org.graalvm.tools.lsp.server.TruffleAdapter.parseWithEnteredContext:(Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 5 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
        end local 4 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
        end local 3 // java.net.URI uri
        end local 2 // java.lang.String langId
        end local 1 // java.lang.String text
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    3     1          text  Ljava/lang/String;
            0    3     2        langId  Ljava/lang/String;
            0    3     3           uri  Ljava/net/URI;
            1    3     4  languageInfo  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            2    3     5     surrogate  Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
    Exceptions:
      throws org.graalvm.tools.lsp.exceptions.DiagnosticsNotification
    MethodParameters:
        Name  Flags
      text    final
      langId  final
      uri     final

  com.oracle.truffle.api.CallTarget parseWithEnteredContext(org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate);
    descriptor: (Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
         0: .line 168
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.sourceCodeEvaluator:Lorg/graalvm/tools/lsp/server/request/SourceCodeEvaluator;
            aload 1 /* surrogate */
            invokevirtual org.graalvm.tools.lsp.server.request.SourceCodeEvaluator.parse:(Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 1 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    1     1  surrogate  Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
    Exceptions:
      throws org.graalvm.tools.lsp.exceptions.DiagnosticsNotification
    MethodParameters:
           Name  Flags
      surrogate  

  public java.util.concurrent.Future<?> reparse(java.net.URI);
    descriptor: (Ljava/net/URI;)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.net.URI uri
         0: .line 172
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 1 /* uri */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogateMap.get:(Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
            astore 2 /* surrogate */
        start local 2 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
         1: .line 173
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            aload 2 /* surrogate */
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$2(Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;)Lcom/oracle/truffle/api/CallTarget; (7)
                  ()Lcom/oracle/truffle/api/CallTarget;
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithDefaultContext:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            areturn
        end local 2 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    2     1        uri  Ljava/net/URI;
            1    2     2  surrogate  Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
    Signature: (Ljava/net/URI;)Ljava/util/concurrent/Future<*>;
    MethodParameters:
      Name  Flags
      uri   

  private com.oracle.truffle.api.nodes.LanguageInfo findLanguageInfo(java.lang.String, com.oracle.truffle.api.TruffleFile);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.lang.String langId
        start local 2 // com.oracle.truffle.api.TruffleFile truffleFile
         0: .line 184
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envInternal:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getLanguages:()Ljava/util/Map;
            astore 3 /* languages */
        start local 3 // java.util.Map languages
         1: .line 185
            aload 3 /* languages */
            aload 1 /* langId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.LanguageInfo
            astore 4 /* langInfo */
        start local 4 // com.oracle.truffle.api.nodes.LanguageInfo langInfo
         2: .line 186
            aload 4 /* langInfo */
            ifnull 4
         3: .line 187
            aload 4 /* langInfo */
            areturn
         4: .line 190
      StackMap locals: java.util.Map com.oracle.truffle.api.nodes.LanguageInfo
      StackMap stack:
            aload 1 /* langId */
            astore 5 /* possibleMimeType */
        start local 5 // java.lang.String possibleMimeType
         5: .line 191
            aload 5 /* possibleMimeType */
            invokestatic com.oracle.truffle.api.source.Source.findLanguage:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* actualLangId */
        start local 6 // java.lang.String actualLangId
         6: .line 192
            aload 6 /* actualLangId */
            ifnonnull 12
         7: .line 194
            aload 2 /* truffleFile */
            invokestatic com.oracle.truffle.api.source.Source.findLanguage:(Lcom/oracle/truffle/api/TruffleFile;)Ljava/lang/String;
            astore 6 /* actualLangId */
         8: .line 195
            goto 10
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter java.lang.String com.oracle.truffle.api.TruffleFile java.util.Map com.oracle.truffle.api.nodes.LanguageInfo java.lang.String java.lang.String
      StackMap stack: java.io.IOException
         9: pop
        10: .line 198
      StackMap locals:
      StackMap stack:
            aload 6 /* actualLangId */
            ifnonnull 12
        11: .line 199
            aload 1 /* langId */
            astore 6 /* actualLangId */
        12: .line 203
      StackMap locals:
      StackMap stack:
            aload 3 /* languages */
            aload 6 /* actualLangId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.LanguageInfo
            astore 4 /* langInfo */
        13: .line 204
            aload 4 /* langInfo */
            ifnonnull 15
        14: .line 205
            new org.graalvm.tools.lsp.exceptions.UnknownLanguageException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown language: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* actualLangId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". Known languages are: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* languages */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.graalvm.tools.lsp.exceptions.UnknownLanguageException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 208
      StackMap locals:
      StackMap stack:
            aload 4 /* langInfo */
            areturn
        end local 6 // java.lang.String actualLangId
        end local 5 // java.lang.String possibleMimeType
        end local 4 // com.oracle.truffle.api.nodes.LanguageInfo langInfo
        end local 3 // java.util.Map languages
        end local 2 // com.oracle.truffle.api.TruffleFile truffleFile
        end local 1 // java.lang.String langId
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   16     0              this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0   16     1            langId  Ljava/lang/String;
            0   16     2       truffleFile  Lcom/oracle/truffle/api/TruffleFile;
            1   16     3         languages  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
            2   16     4          langInfo  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            5   16     5  possibleMimeType  Ljava/lang/String;
            6   16     6      actualLangId  Ljava/lang/String;
      Exception table:
        from    to  target  type
           7     8       9  Class java.io.IOException
    MethodParameters:
             Name  Flags
      langId       final
      truffleFile  final

  public java.util.concurrent.Future<org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate> processChangesAndParse(java.util.List<? extends org.graalvm.tools.lsp.server.types.TextDocumentContentChangeEvent>, java.net.URI);
    descriptor: (Ljava/util/List;Ljava/net/URI;)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.util.List list
        start local 2 // java.net.URI uri
         0: .line 212
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            aload 1 /* list */
            aload 2 /* uri */
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Ljava/util/List;Ljava/net/URI;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$3(Ljava/util/List;Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate; (7)
                  ()Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithDefaultContext:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            areturn
        end local 2 // java.net.URI uri
        end local 1 // java.util.List list
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    1     1  list  Ljava/util/List<+Lorg/graalvm/tools/lsp/server/types/TextDocumentContentChangeEvent;>;
            0    1     2   uri  Ljava/net/URI;
    Signature: (Ljava/util/List<+Lorg/graalvm/tools/lsp/server/types/TextDocumentContentChangeEvent;>;Ljava/net/URI;)Ljava/util/concurrent/Future<Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;>;
    MethodParameters:
      Name  Flags
      list  
      uri   

  protected org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate processChangesAndParseWithContextEntered(java.util.List<? extends org.graalvm.tools.lsp.server.types.TextDocumentContentChangeEvent>, java.net.URI);
    descriptor: (Ljava/util/List;Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.util.List list
        start local 2 // java.net.URI uri
         0: .line 216
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 2 /* uri */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogateMap.get:(Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
            astore 3 /* surrogate */
        start local 3 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
         1: .line 218
            aload 3 /* surrogate */
            ifnonnull 3
         2: .line 219
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No internal mapping for uri="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* uri */
            invokevirtual java.net.URI.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " found."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 222
      StackMap locals: org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate
      StackMap stack:
            aload 1 /* list */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 5
         4: .line 223
            aload 3 /* surrogate */
            areturn
         5: .line 226
      StackMap locals:
      StackMap stack:
            aload 3 /* surrogate */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate.getChangeEventsSinceLastSuccessfulParsing:()Ljava/util/List;
            aload 1 /* list */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         6: .line 227
            aload 3 /* surrogate */
            aload 1 /* list */
            aload 1 /* list */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.tools.lsp.server.types.TextDocumentContentChangeEvent
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate.setLastChange:(Lorg/graalvm/tools/lsp/server/types/TextDocumentContentChangeEvent;)V
         7: .line 228
            aload 3 /* surrogate */
            aload 1 /* list */
            aload 3 /* surrogate */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate.getSource:()Lcom/oracle/truffle/api/source/Source;
            aload 3 /* surrogate */
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.logger:Lcom/oracle/truffle/api/TruffleLogger;
            invokestatic org.graalvm.tools.lsp.server.utils.SourceUtils.applyTextDocumentChanges:(Ljava/util/List;Lcom/oracle/truffle/api/source/Source;Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;Lcom/oracle/truffle/api/TruffleLogger;)Ljava/lang/String;
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate.setEditorText:(Ljava/lang/String;)V
         8: .line 230
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.sourceCodeEvaluator:Lorg/graalvm/tools/lsp/server/request/SourceCodeEvaluator;
            aload 3 /* surrogate */
            invokevirtual org.graalvm.tools.lsp.server.request.SourceCodeEvaluator.parse:(Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;)Lcom/oracle/truffle/api/CallTarget;
            pop
         9: .line 232
            aload 3 /* surrogate */
            areturn
        end local 3 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
        end local 2 // java.net.URI uri
        end local 1 // java.util.List list
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0   10     1       list  Ljava/util/List<+Lorg/graalvm/tools/lsp/server/types/TextDocumentContentChangeEvent;>;
            0   10     2        uri  Ljava/net/URI;
            1   10     3  surrogate  Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
    Exceptions:
      throws org.graalvm.tools.lsp.exceptions.DiagnosticsNotification
    Signature: (Ljava/util/List<+Lorg/graalvm/tools/lsp/server/types/TextDocumentContentChangeEvent;>;Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
    MethodParameters:
      Name  Flags
      list  
      uri   

  public java.util.List<java.util.concurrent.Future<?>> parseWorkspace(java.net.URI);
    descriptor: (Ljava/net/URI;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.net.URI rootUri
         0: .line 236
            aload 1 /* rootUri */
            ifnonnull 2
         1: .line 237
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            areturn
         2: .line 239
      StackMap locals:
      StackMap stack:
            aload 1 /* rootUri */
            invokestatic java.nio.file.Paths.get:(Ljava/net/URI;)Ljava/nio/file/Path;
            astore 2 /* rootPath */
        start local 2 // java.nio.file.Path rootPath
         3: .line 240
            aload 2 /* rootPath */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 5
         4: .line 241
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Root URI is not referencing a directory. URI: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* rootUri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 244
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            aload 2 /* rootPath */
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Ljava/nio/file/Path;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$4(Ljava/nio/file/Path;)Ljava/util/List; (7)
                  ()Ljava/util/List;
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithDefaultContext:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            astore 3 /* futureTasks */
        start local 3 // java.util.concurrent.Future futureTasks
         6: .line 263
            aload 3 /* futureTasks */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            checkcast java.util.List
         7: areturn
         8: .line 264
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter java.net.URI java.nio.file.Path java.util.concurrent.Future
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         9: .line 265
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // java.util.concurrent.Future futureTasks
        end local 2 // java.nio.file.Path rootPath
        end local 1 // java.net.URI rootUri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0   10     1      rootUri  Ljava/net/URI;
            3   10     2     rootPath  Ljava/nio/file/Path;
            6   10     3  futureTasks  Ljava/util/concurrent/Future<Ljava/util/List<Ljava/util/concurrent/Future<*>;>;>;
            9   10     4            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.InterruptedException
           6     7       8  Class java.util.concurrent.ExecutionException
    Signature: (Ljava/net/URI;)Ljava/util/List<Ljava/util/concurrent/Future<*>;>;
    MethodParameters:
         Name  Flags
      rootUri  

  java.lang.String getLanguageId(java.net.URI);
    descriptor: (Ljava/net/URI;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.net.URI uri
         0: .line 270
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 1 /* uri */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogateMap.get:(Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
            astore 2 /* doc */
        start local 2 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate doc
         1: .line 271
            aload 2 /* doc */
            ifnull 3
         2: .line 272
            aload 2 /* doc */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate.getLanguageId:()Ljava/lang/String;
            areturn
         3: .line 275
      StackMap locals: org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            aload 1 /* uri */
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Ljava/net/URI;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$6(Ljava/net/URI;)Ljava/lang/String; (7)
                  ()Ljava/lang/String;
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithDefaultContext:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            astore 3 /* future */
        start local 3 // java.util.concurrent.Future future
         4: .line 284
            aload 3 /* future */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            checkcast java.lang.String
         5: areturn
         6: .line 285
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter java.net.URI org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate java.util.concurrent.Future
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         7: .line 286
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // java.util.concurrent.Future future
        end local 2 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate doc
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    8     1     uri  Ljava/net/URI;
            1    8     2     doc  Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
            4    8     3  future  Ljava/util/concurrent/Future<Ljava/lang/String;>;
            7    8     4       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.InterruptedException
           4     5       6  Class java.util.concurrent.ExecutionException
    MethodParameters:
      Name  Flags
      uri   

  public void setServerCapabilities(java.lang.String, org.graalvm.tools.lsp.server.types.ServerCapabilities);
    descriptor: (Ljava/lang/String;Lorg/graalvm/tools/lsp/server/types/ServerCapabilities;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.lang.String languageId
        start local 2 // org.graalvm.tools.lsp.server.types.ServerCapabilities capabilities
         0: .line 291
            aload 2 /* capabilities */
            invokevirtual org.graalvm.tools.lsp.server.types.ServerCapabilities.getCompletionProvider:()Lorg/graalvm/tools/lsp/server/types/CompletionOptions;
            astore 3 /* completionProvider */
        start local 3 // org.graalvm.tools.lsp.server.types.CompletionOptions completionProvider
         1: .line 292
            aload 3 /* completionProvider */
            ifnull 5
         2: .line 293
            aload 3 /* completionProvider */
            invokevirtual org.graalvm.tools.lsp.server.types.CompletionOptions.getTriggerCharacters:()Ljava/util/List;
            astore 4 /* triggerCharacters */
        start local 4 // java.util.List triggerCharacters
         3: .line 294
            aload 4 /* triggerCharacters */
            ifnull 5
         4: .line 295
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.completionTriggerCharacters:Lorg/graalvm/tools/lsp/server/LanguageTriggerCharacters;
            aload 1 /* languageId */
            aload 4 /* triggerCharacters */
            invokevirtual org.graalvm.tools.lsp.server.LanguageTriggerCharacters.add:(Ljava/lang/String;Ljava/util/List;)V
        end local 4 // java.util.List triggerCharacters
         5: .line 298
      StackMap locals: org.graalvm.tools.lsp.server.types.CompletionOptions
      StackMap stack:
            aload 2 /* capabilities */
            invokevirtual org.graalvm.tools.lsp.server.types.ServerCapabilities.getSignatureHelpProvider:()Lorg/graalvm/tools/lsp/server/types/SignatureHelpOptions;
            astore 4 /* signatureHelpProvider */
        start local 4 // org.graalvm.tools.lsp.server.types.SignatureHelpOptions signatureHelpProvider
         6: .line 299
            aload 4 /* signatureHelpProvider */
            ifnull 10
         7: .line 300
            aload 4 /* signatureHelpProvider */
            invokevirtual org.graalvm.tools.lsp.server.types.SignatureHelpOptions.getTriggerCharacters:()Ljava/util/List;
            astore 5 /* triggerCharacters */
        start local 5 // java.util.List triggerCharacters
         8: .line 301
            aload 5 /* triggerCharacters */
            ifnull 10
         9: .line 302
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.signatureTriggerCharacters:Lorg/graalvm/tools/lsp/server/LanguageTriggerCharacters;
            aload 1 /* languageId */
            aload 5 /* triggerCharacters */
            invokevirtual org.graalvm.tools.lsp.server.LanguageTriggerCharacters.add:(Ljava/lang/String;Ljava/util/List;)V
        end local 5 // java.util.List triggerCharacters
        10: .line 305
      StackMap locals: org.graalvm.tools.lsp.server.types.SignatureHelpOptions
      StackMap stack:
            return
        end local 4 // org.graalvm.tools.lsp.server.types.SignatureHelpOptions signatureHelpProvider
        end local 3 // org.graalvm.tools.lsp.server.types.CompletionOptions completionProvider
        end local 2 // org.graalvm.tools.lsp.server.types.ServerCapabilities capabilities
        end local 1 // java.lang.String languageId
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   11     0                   this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0   11     1             languageId  Ljava/lang/String;
            0   11     2           capabilities  Lorg/graalvm/tools/lsp/server/types/ServerCapabilities;
            1   11     3     completionProvider  Lorg/graalvm/tools/lsp/server/types/CompletionOptions;
            3    5     4      triggerCharacters  Ljava/util/List<Ljava/lang/String;>;
            6   11     4  signatureHelpProvider  Lorg/graalvm/tools/lsp/server/types/SignatureHelpOptions;
            8   10     5      triggerCharacters  Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
              Name  Flags
      languageId    
      capabilities  

  public java.util.concurrent.Future<org.graalvm.tools.lsp.server.types.CompletionList> completion(java.net.URI, int, int, org.graalvm.tools.lsp.server.types.CompletionContext);
    descriptor: (Ljava/net/URI;IILorg/graalvm/tools/lsp/server/types/CompletionContext;)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.net.URI uri
        start local 2 // int line
        start local 3 // int column
        start local 4 // org.graalvm.tools.lsp.server.types.CompletionContext completionContext
         0: .line 361
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            aload 1 /* uri */
            iload 2 /* line */
            iload 3 /* column */
            aload 4 /* completionContext */
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Ljava/net/URI;IILorg/graalvm/tools/lsp/server/types/CompletionContext;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$7(Ljava/net/URI;IILorg/graalvm/tools/lsp/server/types/CompletionContext;)Lorg/graalvm/tools/lsp/server/types/CompletionList; (7)
                  ()Lorg/graalvm/tools/lsp/server/types/CompletionList;
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithDefaultContext:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            areturn
        end local 4 // org.graalvm.tools.lsp.server.types.CompletionContext completionContext
        end local 3 // int column
        end local 2 // int line
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    1     1                uri  Ljava/net/URI;
            0    1     2               line  I
            0    1     3             column  I
            0    1     4  completionContext  Lorg/graalvm/tools/lsp/server/types/CompletionContext;
    Signature: (Ljava/net/URI;IILorg/graalvm/tools/lsp/server/types/CompletionContext;)Ljava/util/concurrent/Future<Lorg/graalvm/tools/lsp/server/types/CompletionList;>;
    MethodParameters:
                   Name  Flags
      uri                final
      line               
      column             
      completionContext  

  public java.util.concurrent.Future<org.graalvm.tools.lsp.server.types.Hover> hover(java.net.URI, int, int);
    descriptor: (Ljava/net/URI;II)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.net.URI uri
        start local 2 // int line
        start local 3 // int column
         0: .line 365
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            aload 1 /* uri */
            iload 2 /* line */
            iload 3 /* column */
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Ljava/net/URI;II)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$8(Ljava/net/URI;II)Lorg/graalvm/tools/lsp/server/types/Hover; (7)
                  ()Lorg/graalvm/tools/lsp/server/types/Hover;
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithDefaultContext:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            areturn
        end local 3 // int column
        end local 2 // int line
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    1     1     uri  Ljava/net/URI;
            0    1     2    line  I
            0    1     3  column  I
    Signature: (Ljava/net/URI;II)Ljava/util/concurrent/Future<Lorg/graalvm/tools/lsp/server/types/Hover;>;
    MethodParameters:
        Name  Flags
      uri     
      line    
      column  

  public java.util.concurrent.Future<org.graalvm.tools.lsp.server.types.SignatureHelp> signatureHelp(java.net.URI, int, int);
    descriptor: (Ljava/net/URI;II)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.net.URI uri
        start local 2 // int line
        start local 3 // int character
         0: .line 369
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            aload 1 /* uri */
            iload 2 /* line */
            iload 3 /* character */
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Ljava/net/URI;II)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$9(Ljava/net/URI;II)Lorg/graalvm/tools/lsp/server/types/SignatureHelp; (7)
                  ()Lorg/graalvm/tools/lsp/server/types/SignatureHelp;
            iconst_1
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithNestedContext:(Ljava/util/concurrent/Callable;Z)Ljava/util/concurrent/Future;
            areturn
        end local 3 // int character
        end local 2 // int line
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    1     1        uri  Ljava/net/URI;
            0    1     2       line  I
            0    1     3  character  I
    Signature: (Ljava/net/URI;II)Ljava/util/concurrent/Future<Lorg/graalvm/tools/lsp/server/types/SignatureHelp;>;
    MethodParameters:
           Name  Flags
      uri        
      line       
      character  

  public java.util.concurrent.Future<java.lang.Boolean> runCoverageAnalysis(java.net.URI);
    descriptor: (Ljava/net/URI;)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.net.URI uri
         0: .line 373
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            aload 1 /* uri */
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Ljava/net/URI;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$10(Ljava/net/URI;)Ljava/lang/Boolean; (7)
                  ()Ljava/lang/Boolean;
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithDefaultContext:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            astore 2 /* future */
        start local 2 // java.util.concurrent.Future future
         1: .line 391
            aload 2 /* future */
            areturn
        end local 2 // java.util.concurrent.Future future
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    2     1     uri  Ljava/net/URI;
            1    2     2  future  Ljava/util/concurrent/Future<Ljava/lang/Boolean;>;
    Signature: (Ljava/net/URI;)Ljava/util/concurrent/Future<Ljava/lang/Boolean;>;
    MethodParameters:
      Name  Flags
      uri   final

  public java.util.concurrent.Future<org.graalvm.tools.lsp.server.types.Coverage> getCoverage(java.net.URI);
    descriptor: (Ljava/net/URI;)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.net.URI uri
         0: .line 395
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            aload 1 /* uri */
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Ljava/net/URI;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$12(Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/types/Coverage; (7)
                  ()Lorg/graalvm/tools/lsp/server/types/Coverage;
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithDefaultContext:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            areturn
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    1     1   uri  Ljava/net/URI;
    Signature: (Ljava/net/URI;)Ljava/util/concurrent/Future<Lorg/graalvm/tools/lsp/server/types/Coverage;>;
    MethodParameters:
      Name  Flags
      uri   

  public java.util.concurrent.Future<java.util.List<? extends org.graalvm.tools.lsp.server.types.DocumentHighlight>> documentHighlight(java.net.URI, int, int);
    descriptor: (Ljava/net/URI;II)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.net.URI uri
        start local 2 // int line
        start local 3 // int character
         0: .line 401
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            aload 1 /* uri */
            iload 2 /* line */
            iload 3 /* character */
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Ljava/net/URI;II)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$13(Ljava/net/URI;II)Ljava/util/List; (7)
                  ()Ljava/util/List;
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithDefaultContext:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            areturn
        end local 3 // int character
        end local 2 // int line
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    1     1        uri  Ljava/net/URI;
            0    1     2       line  I
            0    1     3  character  I
    Signature: (Ljava/net/URI;II)Ljava/util/concurrent/Future<Ljava/util/List<+Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;>;>;
    MethodParameters:
           Name  Flags
      uri        
      line       
      character  

  public boolean hasCoverageData(java.net.URI);
    descriptor: (Ljava/net/URI;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.net.URI uri
         0: .line 405
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 1 /* uri */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogateMap.get:(Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
            astore 2 /* surrogate */
        start local 2 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
         1: .line 406
            aload 2 /* surrogate */
            ifnull 2
            aload 2 /* surrogate */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate.hasCoverageData:()Z
            goto 3
      StackMap locals: org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 2 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    4     1        uri  Ljava/net/URI;
            1    4     2  surrogate  Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
    MethodParameters:
      Name  Flags
      uri   

  public java.lang.String getSourceText(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.nio.file.Path path
         0: .line 411
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            ifnonnull 2
         1: .line 412
            aconst_null
            areturn
         2: .line 415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 1 /* path */
            invokeinterface java.nio.file.Path.toUri:()Ljava/net/URI;
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogateMap.get:(Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
            astore 2 /* surrogate */
        start local 2 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
         3: .line 416
            aload 2 /* surrogate */
            ifnull 4
            aload 2 /* surrogate */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate.getEditorText:()Ljava/lang/String;
            goto 5
      StackMap locals: org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate
      StackMap stack:
         4: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         5: areturn
        end local 2 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
        end local 1 // java.nio.file.Path path
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    6     1       path  Ljava/nio/file/Path;
            3    6     2  surrogate  Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
    MethodParameters:
      Name  Flags
      path  

  public com.oracle.truffle.api.source.Source getSource(java.net.URI);
    descriptor: (Ljava/net/URI;)Lcom/oracle/truffle/api/source/Source;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.net.URI uri
         0: .line 420
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            ifnonnull 2
         1: .line 421
            aconst_null
            areturn
         2: .line 424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 1 /* uri */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogateMap.get:(Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
            astore 2 /* surrogate */
        start local 2 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
         3: .line 425
            aload 2 /* surrogate */
            ifnull 4
            aload 2 /* surrogate */
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate.getSource:()Lcom/oracle/truffle/api/source/Source;
            goto 5
      StackMap locals: org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate
      StackMap stack:
         4: aconst_null
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.source.Source
         5: areturn
        end local 2 // org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate surrogate
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    6     1        uri  Ljava/net/URI;
            3    6     2  surrogate  Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
    MethodParameters:
      Name  Flags
      uri   

  public boolean isVirtualFile(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // java.nio.file.Path path
         0: .line 430
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 1 /* path */
            invokeinterface java.nio.file.Path.toUri:()Ljava/net/URI;
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogateMap.containsSurrogate:(Ljava/net/URI;)Z
            ireturn
        end local 1 // java.nio.file.Path path
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    1     1  path  Ljava/nio/file/Path;
    MethodParameters:
      Name  Flags
      path  

  public java.util.function.Function<java.net.URI, org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate> surrogateGetter(com.oracle.truffle.api.nodes.LanguageInfo);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/util/function/Function;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
         0: .line 434
            aload 0 /* this */
            aload 1 /* languageInfo */
            invokedynamic apply(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$14(Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate; (7)
                  (Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
            areturn
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    1     1  languageInfo  Lcom/oracle/truffle/api/nodes/LanguageInfo;
    Signature: (Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/util/function/Function<Ljava/net/URI;Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;>;
    MethodParameters:
              Name  Flags
      languageInfo  

  public void initializeLSPServer(org.graalvm.tools.api.lsp.LSPServerAccessor);
    descriptor: (Lorg/graalvm/tools/api/lsp/LSPServerAccessor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // org.graalvm.tools.api.lsp.LSPServerAccessor server
         0: .line 440
            aload 0 /* this */
            aload 1 /* server */
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.lspServer:Lorg/graalvm/tools/api/lsp/LSPServerAccessor;
         1: .line 441
            return
        end local 1 // org.graalvm.tools.api.lsp.LSPServerAccessor server
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    2     1  server  Lorg/graalvm/tools/api/lsp/LSPServerAccessor;
    MethodParameters:
        Name  Flags
      server  

  private java.util.List<org.graalvm.tools.api.lsp.LSPCommand> getExternalCommands();
    descriptor: ()Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 444
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.extensionCommands:Ljava/util/List;
            ifnonnull 13
         1: .line 445
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.graalvm.tools.lsp.server.TruffleAdapter.extensionCommands:Ljava/util/List;
         2: .line 446
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envMain:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstruments:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 12
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.InstrumentInfo
            astore 1 /* instrument */
        start local 1 // com.oracle.truffle.api.InstrumentInfo instrument
         4: .line 447
            ldc "lsp"
            aload 1 /* instrument */
            invokevirtual com.oracle.truffle.api.InstrumentInfo.getId:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 448
            goto 12
         6: .line 450
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter com.oracle.truffle.api.InstrumentInfo java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envMain:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 1 /* instrument */
            ldc Lorg/graalvm/tools/api/lsp/LSPExtension;
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.lookup:(Lcom/oracle/truffle/api/InstrumentInfo;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.graalvm.tools.api.lsp.LSPExtension
            astore 3 /* extension */
        start local 3 // org.graalvm.tools.api.lsp.LSPExtension extension
         7: .line 451
            aload 3 /* extension */
            ifnull 12
         8: .line 452
            aload 3 /* extension */
            invokeinterface org.graalvm.tools.api.lsp.LSPExtension.getCommands:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter com.oracle.truffle.api.InstrumentInfo java.util.Iterator org.graalvm.tools.api.lsp.LSPExtension top java.util.Iterator
      StackMap stack:
         9: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.tools.api.lsp.LSPCommand
            astore 4 /* command */
        start local 4 // org.graalvm.tools.api.lsp.LSPCommand command
        10: .line 453
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.extensionCommands:Ljava/util/List;
            aload 4 /* command */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.graalvm.tools.api.lsp.LSPCommand command
        11: .line 452
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 3 // org.graalvm.tools.api.lsp.LSPExtension extension
        end local 1 // com.oracle.truffle.api.InstrumentInfo instrument
        12: .line 446
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        13: .line 458
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.extensionCommands:Ljava/util/List;
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            4   12     1  instrument  Lcom/oracle/truffle/api/InstrumentInfo;
            7   12     3   extension  Lorg/graalvm/tools/api/lsp/LSPExtension;
           10   11     4     command  Lorg/graalvm/tools/api/lsp/LSPCommand;
    Signature: ()Ljava/util/List<Lorg/graalvm/tools/api/lsp/LSPCommand;>;

  public java.util.Collection<java.lang.String> getExtensionCommandNames();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 462
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.ArrayList result
         1: .line 463
            aload 0 /* this */
            invokevirtual org.graalvm.tools.lsp.server.TruffleAdapter.getExternalCommands:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter java.util.ArrayList top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.tools.api.lsp.LSPCommand
            astore 2 /* command */
        start local 2 // org.graalvm.tools.api.lsp.LSPCommand command
         3: .line 464
            aload 1 /* result */
            aload 2 /* command */
            invokeinterface org.graalvm.tools.api.lsp.LSPCommand.getName:()Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // org.graalvm.tools.api.lsp.LSPCommand command
         4: .line 463
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 466
            aload 1 /* result */
            areturn
        end local 1 // java.util.ArrayList result
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            1    6     1   result  Ljava/util/ArrayList<Ljava/lang/String;>;
            3    4     2  command  Lorg/graalvm/tools/api/lsp/LSPCommand;
    Signature: ()Ljava/util/Collection<Ljava/lang/String;>;

  public java.util.concurrent.Future<?> createExtensionCommand(org.graalvm.tools.lsp.server.types.ExecuteCommandParams);
    descriptor: (Lorg/graalvm/tools/lsp/server/types/ExecuteCommandParams;)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 1 // org.graalvm.tools.lsp.server.types.ExecuteCommandParams params
         0: .line 470
            aload 1 /* params */
            invokevirtual org.graalvm.tools.lsp.server.types.ExecuteCommandParams.getCommand:()Ljava/lang/String;
            astore 2 /* commandName */
        start local 2 // java.lang.String commandName
         1: .line 471
            aload 0 /* this */
            invokevirtual org.graalvm.tools.lsp.server.TruffleAdapter.getExternalCommands:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter org.graalvm.tools.lsp.server.types.ExecuteCommandParams java.lang.String top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.tools.api.lsp.LSPCommand
            astore 3 /* command */
        start local 3 // org.graalvm.tools.api.lsp.LSPCommand command
         3: .line 472
            aload 2 /* commandName */
            aload 3 /* command */
            invokeinterface org.graalvm.tools.api.lsp.LSPCommand.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 473
            aload 1 /* params */
            invokevirtual org.graalvm.tools.lsp.server.types.ExecuteCommandParams.getArguments:()Ljava/util/List;
            astore 5 /* args */
        start local 5 // java.util.List args
         5: .line 474
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            aload 3 /* command */
            aload 5 /* args */
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Lorg/graalvm/tools/api/lsp/LSPCommand;Ljava/util/List;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$16(Lorg/graalvm/tools/api/lsp/LSPCommand;Ljava/util/List;)Ljava/lang/Object; (7)
                  ()Ljava/lang/Object;
            aload 3 /* command */
            invokeinterface org.graalvm.tools.api.lsp.LSPCommand.getTimeoutMillis:()I
            aload 3 /* command */
            aload 5 /* args */
            invokedynamic call(Lorg/graalvm/tools/api/lsp/LSPCommand;Ljava/util/List;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$17(Lorg/graalvm/tools/api/lsp/LSPCommand;Ljava/util/List;)Ljava/lang/Object; (6)
                  ()Ljava/lang/Object;
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithNestedContext:(Ljava/util/concurrent/Callable;ILjava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            areturn
        end local 5 // java.util.List args
        end local 3 // org.graalvm.tools.api.lsp.LSPCommand command
         6: .line 471
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 477
            aconst_null
            areturn
        end local 2 // java.lang.String commandName
        end local 1 // org.graalvm.tools.lsp.server.types.ExecuteCommandParams params
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    8     1       params  Lorg/graalvm/tools/lsp/server/types/ExecuteCommandParams;
            1    8     2  commandName  Ljava/lang/String;
            3    6     3      command  Lorg/graalvm/tools/api/lsp/LSPCommand;
            5    6     5         args  Ljava/util/List<Ljava/lang/Object;>;
    Signature: (Lorg/graalvm/tools/lsp/server/types/ExecuteCommandParams;)Ljava/util/concurrent/Future<*>;
    MethodParameters:
        Name  Flags
      params  

  private java.lang.Object lambda$0();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 137
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.logger:Lcom/oracle/truffle/api/TruffleLogger;
            getstatic java.util.logging.Level.CONFIG:Ljava/util/logging/Level;
            ldc "Truffle Runtime: {0}"
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            invokeinterface com.oracle.truffle.api.TruffleRuntime.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 138
            aconst_null
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
    Exceptions:
      throws java.lang.Exception

  private com.oracle.truffle.api.CallTarget lambda$1(java.lang.String, java.lang.String, java.net.URI);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/net/URI;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 158
            aload 0 /* this */
            aload 1
            aload 2
            aload 3
            invokevirtual org.graalvm.tools.lsp.server.TruffleAdapter.parseWithEnteredContext:(Ljava/lang/String;Ljava/lang/String;Ljava/net/URI;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
    Exceptions:
      throws java.lang.Exception

  private com.oracle.truffle.api.CallTarget lambda$2(org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate);
    descriptor: (Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 173
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.tools.lsp.server.TruffleAdapter.parseWithEnteredContext:(Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
    Exceptions:
      throws java.lang.Exception

  private org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate lambda$3(java.util.List, java.net.URI);
    descriptor: (Ljava/util/List;Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 212
            aload 0 /* this */
            aload 1
            aload 2
            invokevirtual org.graalvm.tools.lsp.server.TruffleAdapter.processChangesAndParseWithContextEntered:(Ljava/util/List;Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
    Exceptions:
      throws java.lang.Exception

  private java.util.List lambda$4(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/util/List;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 245
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* mimeType2LangInfo */
        start local 2 // java.util.Map mimeType2LangInfo
         1: .line 246
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envInternal:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getLanguages:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter java.nio.file.Path java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.LanguageInfo
            astore 3 /* langInfo */
        start local 3 // com.oracle.truffle.api.nodes.LanguageInfo langInfo
         3: .line 247
            aload 3 /* langInfo */
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.isInternal:()Z
            ifeq 5
         4: .line 248
            goto 6
         5: .line 250
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter java.nio.file.Path java.util.Map com.oracle.truffle.api.nodes.LanguageInfo java.util.Iterator
      StackMap stack:
            aload 3 /* langInfo */
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getMimeTypes:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            aload 2 /* mimeType2LangInfo */
            aload 3 /* langInfo */
            invokedynamic accept(Ljava/util/Map;Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$5(Ljava/util/Map;Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 3 // com.oracle.truffle.api.nodes.LanguageInfo langInfo
         6: .line 246
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter java.nio.file.Path java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 253
            new org.graalvm.tools.lsp.server.TruffleAdapter$WorkspaceWalker
            dup
            aload 0 /* this */
            aload 2 /* mimeType2LangInfo */
            invokespecial org.graalvm.tools.lsp.server.TruffleAdapter$WorkspaceWalker.<init>:(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Ljava/util/Map;)V
            astore 3 /* walker */
        start local 3 // org.graalvm.tools.lsp.server.TruffleAdapter$WorkspaceWalker walker
         8: .line 254
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.logger:Lcom/oracle/truffle/api/TruffleLogger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Start walking file tree at: {0}"
            aload 1
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
         9: .line 255
            aload 1
            aload 3 /* walker */
            invokestatic java.nio.file.Files.walkFileTree:(Ljava/nio/file/Path;Ljava/nio/file/FileVisitor;)Ljava/nio/file/Path;
            pop
        10: .line 256
            aload 3 /* walker */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter$WorkspaceWalker.parsingTasks:Ljava/util/List;
        11: areturn
        end local 3 // org.graalvm.tools.lsp.server.TruffleAdapter$WorkspaceWalker walker
        12: .line 257
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter java.nio.file.Path java.util.Map
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        13: .line 258
            new java.lang.RuntimeException
            dup
            aload 3 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException e
        end local 2 // java.util.Map mimeType2LangInfo
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0               this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            1   14     2  mimeType2LangInfo  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
            3    6     3           langInfo  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            8   12     3             walker  Lorg/graalvm/tools/lsp/server/TruffleAdapter$WorkspaceWalker;
           13   14     3                  e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           7    11      12  Class java.io.IOException
    Exceptions:
      throws java.lang.Exception

  private java.lang.String lambda$6(java.net.URI);
    descriptor: (Ljava/net/URI;)Ljava/lang/String;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 277
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envInternal:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 1
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getTruffleFile:(Ljava/net/URI;)Lcom/oracle/truffle/api/TruffleFile;
            invokestatic com.oracle.truffle.api.source.Source.findLanguage:(Lcom/oracle/truffle/api/TruffleFile;)Ljava/lang/String;
         1: areturn
         2: .line 278
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         3: .line 279
            aconst_null
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws java.lang.Exception

  private org.graalvm.tools.lsp.server.types.CompletionList lambda$7(java.net.URI, int, int, org.graalvm.tools.lsp.server.types.CompletionContext);
    descriptor: (Ljava/net/URI;IILorg/graalvm/tools/lsp/server/types/CompletionContext;)Lorg/graalvm/tools/lsp/server/types/CompletionList;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 361
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.completionHandler:Lorg/graalvm/tools/lsp/server/request/CompletionRequestHandler;
            aload 1
            iload 2
            iload 3
            aload 4
            invokevirtual org.graalvm.tools.lsp.server.request.CompletionRequestHandler.completionWithEnteredContext:(Ljava/net/URI;IILorg/graalvm/tools/lsp/server/types/CompletionContext;)Lorg/graalvm/tools/lsp/server/types/CompletionList;
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
    Exceptions:
      throws java.lang.Exception

  private org.graalvm.tools.lsp.server.types.Hover lambda$8(java.net.URI, int, int);
    descriptor: (Ljava/net/URI;II)Lorg/graalvm/tools/lsp/server/types/Hover;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 365
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.hoverHandler:Lorg/graalvm/tools/lsp/server/request/HoverRequestHandler;
            aload 1
            iload 2
            iload 3
            invokevirtual org.graalvm.tools.lsp.server.request.HoverRequestHandler.hoverWithEnteredContext:(Ljava/net/URI;II)Lorg/graalvm/tools/lsp/server/types/Hover;
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
    Exceptions:
      throws java.lang.Exception

  private org.graalvm.tools.lsp.server.types.SignatureHelp lambda$9(java.net.URI, int, int);
    descriptor: (Ljava/net/URI;II)Lorg/graalvm/tools/lsp/server/types/SignatureHelp;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 369
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.signatureHelpHandler:Lorg/graalvm/tools/lsp/server/request/SignatureHelpRequestHandler;
            aload 1
            iload 2
            iload 3
            invokevirtual org.graalvm.tools.lsp.server.request.SignatureHelpRequestHandler.signatureHelpWithEnteredContext:(Ljava/net/URI;II)Lorg/graalvm/tools/lsp/server/types/SignatureHelp;
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
    Exceptions:
      throws java.lang.Exception

  private java.lang.Boolean lambda$10(java.net.URI);
    descriptor: (Ljava/net/URI;)Ljava/lang/Boolean;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 374
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.resetContextCache:()V
         1: .line 380
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.contextAwareExecutor:Lorg/graalvm/tools/lsp/server/ContextAwareExecutor;
            aload 0 /* this */
            aload 1
            invokedynamic call(Lorg/graalvm/tools/lsp/server/TruffleAdapter;Ljava/net/URI;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$11(Ljava/net/URI;)Ljava/lang/Boolean; (7)
                  ()Ljava/lang/Boolean;
            iconst_1
            invokeinterface org.graalvm.tools.lsp.server.ContextAwareExecutor.executeWithNestedContext:(Ljava/util/concurrent/Callable;Z)Ljava/util/concurrent/Future;
            astore 2 /* futureCoverage */
        start local 2 // java.util.concurrent.Future futureCoverage
         2: .line 382
            aload 2 /* futureCoverage */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            checkcast java.lang.Boolean
         3: areturn
         4: .line 383
      StackMap locals: org.graalvm.tools.lsp.server.TruffleAdapter java.net.URI java.util.concurrent.Future
      StackMap stack: java.util.concurrent.ExecutionException
            astore 3 /* e */
        start local 3 // java.util.concurrent.ExecutionException e
         5: .line 384
            aload 3 /* e */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            instanceof java.lang.Exception
            ifeq 7
         6: .line 385
            aload 3 /* e */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            checkcast java.lang.Exception
            athrow
         7: .line 387
      StackMap locals: java.util.concurrent.ExecutionException
      StackMap stack:
            aload 3 /* e */
            athrow
        end local 3 // java.util.concurrent.ExecutionException e
        end local 2 // java.util.concurrent.Future futureCoverage
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            2    8     2  futureCoverage  Ljava/util/concurrent/Future<Ljava/lang/Boolean;>;
            5    8     3               e  Ljava/util/concurrent/ExecutionException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.util.concurrent.ExecutionException
    Exceptions:
      throws java.lang.Exception

  private org.graalvm.tools.lsp.server.types.Coverage lambda$12(java.net.URI);
    descriptor: (Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/types/Coverage;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 396
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.coverageHandler:Lorg/graalvm/tools/lsp/server/request/CoverageRequestHandler;
            aload 1
            invokevirtual org.graalvm.tools.lsp.server.request.CoverageRequestHandler.getCoverageWithEnteredContext:(Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/types/Coverage;
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
    Exceptions:
      throws java.lang.Exception

  private java.util.List lambda$13(java.net.URI, int, int);
    descriptor: (Ljava/net/URI;II)Ljava/util/List;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 401
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.highlightHandler:Lorg/graalvm/tools/lsp/server/request/HighlightRequestHandler;
            aload 1
            iload 2
            iload 3
            invokevirtual org.graalvm.tools.lsp.server.request.HighlightRequestHandler.highlightWithEnteredContext:(Ljava/net/URI;II)Ljava/util/List;
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
    Exceptions:
      throws java.lang.Exception

  private org.graalvm.tools.lsp.server.utils.TextDocumentSurrogate lambda$14(com.oracle.truffle.api.nodes.LanguageInfo, java.net.URI);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/net/URI;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
        start local 2 // java.net.URI sourceUri
         0: .line 435
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.surrogateMap:Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogateMap;
            aload 2 /* sourceUri */
            aload 1
            invokedynamic get(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/tools/lsp/server/TruffleAdapter.lambda$15(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Lcom/oracle/truffle/api/nodes/LanguageInfo; (6)
                  ()Lcom/oracle/truffle/api/nodes/LanguageInfo;
            invokevirtual org.graalvm.tools.lsp.server.utils.TextDocumentSurrogateMap.getOrCreateSurrogate:(Ljava/net/URI;Ljava/util/function/Supplier;)Lorg/graalvm/tools/lsp/server/utils/TextDocumentSurrogate;
            areturn
        end local 2 // java.net.URI sourceUri
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            0    1     2  sourceUri  Ljava/net/URI;

  private java.lang.Object lambda$16(org.graalvm.tools.api.lsp.LSPCommand, java.util.List);
    descriptor: (Lorg/graalvm/tools/api/lsp/LSPCommand;Ljava/util/List;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 474
            aload 1
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.lspServer:Lorg/graalvm/tools/api/lsp/LSPServerAccessor;
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.envInternal:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            aload 2
            invokeinterface org.graalvm.tools.api.lsp.LSPCommand.execute:(Lorg/graalvm/tools/api/lsp/LSPServerAccessor;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Ljava/util/List;)Ljava/lang/Object;
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Object lambda$17(org.graalvm.tools.api.lsp.LSPCommand, java.util.List);
    descriptor: (Lorg/graalvm/tools/api/lsp/LSPCommand;Ljava/util/List;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 474
            aload 0
            aload 1
            invokeinterface org.graalvm.tools.api.lsp.LSPCommand.onTimeout:(Ljava/util/List;)Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception

  private static void lambda$5(java.util.Map, com.oracle.truffle.api.nodes.LanguageInfo, java.lang.String);
    descriptor: (Ljava/util/Map;Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.String mimeType
         0: .line 250
            aload 0
            aload 2 /* mimeType */
            aload 1
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            return
        end local 2 // java.lang.String mimeType
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     2  mimeType  Ljava/lang/String;

  private java.lang.Boolean lambda$11(java.net.URI);
    descriptor: (Ljava/net/URI;)Ljava/lang/Boolean;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
         0: .line 380
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.server.TruffleAdapter.coverageHandler:Lorg/graalvm/tools/lsp/server/request/CoverageRequestHandler;
            aload 1
            invokevirtual org.graalvm.tools.lsp.server.request.CoverageRequestHandler.runCoverageAnalysisWithEnteredContext:(Ljava/net/URI;)Ljava/lang/Boolean;
            areturn
        end local 0 // org.graalvm.tools.lsp.server.TruffleAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/server/TruffleAdapter;
    Exceptions:
      throws java.lang.Exception

  private static com.oracle.truffle.api.nodes.LanguageInfo lambda$15(com.oracle.truffle.api.nodes.LanguageInfo);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 435
            aload 0
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "TruffleAdapter.java"
NestMembers:
  org.graalvm.tools.lsp.server.TruffleAdapter$WorkspaceWalker
InnerClasses:
  public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  final WorkspaceWalker = org.graalvm.tools.lsp.server.TruffleAdapter$WorkspaceWalker of org.graalvm.tools.lsp.server.TruffleAdapter