Advertencia Este proyecto está en desarrollo.
El servidor de lenguaje HTTP es una implementación de LSP para HTTP. Le ayuda a escribir fácilmente sus mensajes y solicitudes HTTP aprovechando funciones como finalización, documentación de desplazamiento y diagnóstico.
En las primeras etapas, los cambios de ruptura pueden ocurrir con frecuencia, por lo que es importante que si quiera usar este servidor, usarlo con precaución e informe cualquier error que pueda encontrar.
¡Las contribuciones son bienvenidas! Cree un problema o retire la solicitud si encuentra algún problema o tiene sugerencias de mejora.
# 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 Crear archivo .vscode/settings.json y configure python.interpreterPath para señalar su entorno Python donde se instala pygls .
{
"python.defaultInterpreterPath" : " ${workspaceFolder}/server/venv/bin/python "
}Launch Server desde el menú desplegable. # Navigate to the client folder
cd client/
# Install the required dependencies
npm installLaunch Client desde el menú desplegable.Nota no probada, ¡los comentarios son bienvenidos!
Estas configuraciones de configuración no funcionarán hasta que se compilan un ejecutable independiente del servidor, pero aún puede usarlas si sabe cómo configurarlo para ejecutar desde el código fuente del servidor.
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 ,
})Después de instalar las dependencias, deberá tener una configuración de LSP en funcionamiento en Neovim usando LSPConfig. Luego deberá seguir la guía de contribución de LSPConfig para agregar manualmente esta configuración del servidor.
El archivo de configuración: 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 ,
},
}Luego puede activar este servidor en el archivo LUA que usa para configurar todos los demás servidores.
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 Si encuentra algún problema mientras usa el servidor de lenguaje HTTP, verifique lo siguiente:
HTTP Language Server tiene licencia bajo los términos de la licencia MIT . Ver licencia.md