警告このプロジェクトは開発中です。
HTTP言語サーバーは、HTTPのLSP実装です。完了、ホバードキュメント、診断などの機能を活用することにより、HTTPメッセージとリクエストを簡単に記述するのに役立ちます。
初期段階では、壊れた変更が頻繁に発生する可能性があるため、このサーバーを使用したい場合は、慎重に使用し、遭遇する可能性のあるバグを報告することが重要です。
貢献は大歓迎です!問題が発生した場合、または改善の提案がある場合は、問題を作成するか、リクエストをプルしてください。
# Clone the repository
git clone https://github.com/mateusabelli/http-language-server.git
# Navigate to the project folder
cd http-language-server # Navigate to the server folder
cd server/
# Create a new virtual environment
python -m venv venv
# Activate the environment
source venv/bin/activate
# Install the required dependencies
python -m pip install -r requirements.txt .vscode/settings.jsonファイルを作成し、 python.interpreterPathを設定して、 pyglsがインストールされているpython環境を指すようにします。
{
"python.defaultInterpreterPath" : " ${workspaceFolder}/server/venv/bin/python "
}Launch Serverを選択します。 # Navigate to the client folder
cd client/
# Install the required dependencies
npm installLaunch Clientを選択します。テストされていないことに注意してください、フィードバックは大歓迎です!
これらのセットアップ構成は、スタンドアロン実行可能ファイルがサーバーからコンパイルされるまで機能しませんが、サーバーソースコードから実行するために設定する方法を知っていれば、それらを使用できます。
vim . api . nvim_create_autocmd ({ " BufEnter " }, {
pattern = { " .http " },
callback = function ()
vim . lsp . start ({
name = " http-language-server " ,
cmd = { " http-language-server --stdio " },
root_dir = vim . fs . dirname ( vim . fs . find ({ " .git " }, { upward = true })[ 1 ])
})
end ,
})依存関係をインストールした後、LSPConfigを使用してNeoVIMで動作するLSPセットアップが必要です。次に、このサーバー構成を手動で追加するために、LSPConfigの寄稿ガイドに従う必要があります。
構成ファイル: lua/lspconfig/server_configurations/http-language-server.lua
-- http-language-server.lua
local util = require ' lspconfig.util '
local bin_name = ' http-language-server '
local cmd = { bin_name , ' --stdio ' }
if vim . fn . has ' win32 ' == 1 then
cmd = { ' cmd.exe ' , ' /C ' , bin_name , ' --stdio ' }
end
return {
default_config = {
cmd = cmd ,
filetypes = { ' .http ' },
root_dir = util . find_git_ancestor ,
single_file_support = true ,
},
}次に、他のすべてのサーバーをセットアップするために使用するLUAファイルでこのサーバーをアクティブにすることができます。
require ( ' lspconfig ' )[ ' http_language_server ' ]. setup ({
capabilities = capabilities ,
on_attach = on_attach
}) augroup HelloWorldPythonExample
au !
autocmd User lsp_setup call lsp#register_server ({
' name ' : ' http-language-server ' ,
' cmd ' : {server_info - >[ ' http-language-server ' , ' --stdio ' ]},
' allowlist ' : [ ' .http ' ]
})
augroup END(make-lsp-client :new-connection
(lsp-stdio-connection
` ( , (executable-find " http-language-server " ) " --stdio " ))
:activation-fn (lsp-activate-on " .http " )
:server-id ' http-language-server'){
"clients" : {
"http-language-server" : {
"command" : [ " http-language-server " , " --stdio " ],
"enabled" : true ,
"selector" : " source.http "
}
}
} .
├─ client // Language Client
│ ├─ src
│ │ └─ extension . ts // Language Client entry point
│ └─ syntax // Syntax hightlighting settings
│
└─ server // Language Server
├─ __main__ . py // Language Server entry point
└─ server . py HTTP言語サーバーの使用中に問題が発生した場合は、以下を確認してください。
HTTP言語サーバーは、 MITライセンスの条件に基づいてライセンスされています。 license.mdを参照してください