Предупреждение Этот проект находится в стадии разработки.
Языковой сервер HTTP является реализацией LSP для HTTP. Это помогает вам легко написать ваши 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 python.interpreterPath pygls .vscode/settings.json
{
"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 ,
})После установки зависимостей вам потребуется рабочая настройка LSP в NeoVim с помощью LSPConfig. Затем вам нужно будет следовать руководству 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 Language Server лицензирован в соответствии с условиями лицензии MIT . Смотрите лицензию.md