2017-09-04 16 views
2

私はneovimで使用するためのLanguage Server Protocol(LSP)サーバーを作成しています.VSCodeに対してこれをテストして、すべての詳細が正しいことを確認してください。また、誤ってneovim私の実装に - isms。拡張機能を作成せずにLSPサーバをテストできますか?

現在のドキュメントでは、サーバーのクライアントとして機能するVSCode拡張機能を記述することをお勧めしますが、使用しないプラットフォームに多大な努力を払うことには本当に興味がありません。

私はCLIコマンドと、それが対応するファイルタイプを定義して行くヒットすることができますneovimで

let g:LanguageClient_serverCommands = { 
    \ 'rust': ['rustup', 'run', 'nightly', 'rls'], 
    \ 'javascript': ['/opt/javascript-typescript-langserver/lib/language-server-stdio.js'], 
    \ } 

は、Visual Studioのコードで何か同様のが存在していますか?それはVSCodeの言語のクライアントを書くには少し手間がかかり

+0

拡張機能はありませんが、そのLSPクライアント。残念ながら、私が考えることができるより単純な方法はありません。 –

答えて

0

、ここで私はそれをやった方法です:クライアントが起動したら

export function activate(context: vscode.ExtensionContext) { 

    // This line of code will only be executed once when your extension is activated 

    // TODO: Start server exe and communicate with it 
    let serverExe = <Path_to_server>; 

    let ServerOptions: ServerOptions = { 
     run: {command: serverExe, args:['-lsp']}, 
     debug: {command: serverExe, args:['-lsp']} 
    } 

    let clientOptions: LanguageClientOptions = { 
     // Register the server for plain text documents 
     documentSelector: [ 
      { 
       pattern: '**/*.txt', 
      } 
     ], 

    } 

    let lspClient = new LanguageClient("Hello LSP", ServerOptions, clientOptions); 

    // For debugging only 
    //lspClient.trace = Trace.Verbose; 

    //add all disposables here 
    context.subscriptions.push(lspClient.start()); 
} 

、それはサーバーを起動し、初期化の会話を開始し、クライアントはすべての時計VSCodeの重要なイベント(ドキュメントのオープン/クローズ/変更、Ctrl +スペース、...)と適切なリクエスト/通知をサーバに送信

関連する問題