AVERTISSEMENT Ce projet est en cours de développement.
Le serveur de langage HTTP est une implémentation LSP pour HTTP. Il vous aide à rédiger facilement vos messages et vos demandes HTTP en tirant parti des fonctionnalités telles que l'achèvement, la documentation en survol et les diagnostics.
Dans les premiers stades, les modifications de rupture peuvent se produire fréquemment, il est donc important que si vous souhaitez utiliser ce serveur, pour l'utiliser avec prudence et veuillez signaler tous les bogues que vous pourriez rencontrer.
Les contributions sont les bienvenues! Veuillez créer une demande de problème ou de traction si vous rencontrez des problèmes ou si vous avez des suggestions d'amélioration.
# 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 Créez un fichier .vscode/settings.json et définissez python.interpreterPath pour pointer vers votre environnement Python où pygls est installé.
{
"python.defaultInterpreterPath" : " ${workspaceFolder}/server/venv/bin/python "
}Launch Server dans la liste déroulante. # Navigate to the client folder
cd client/
# Install the required dependencies
npm installLaunch Client dans la liste déroulante.Remarque non testé, les commentaires sont les bienvenus!
Ces configurations de configuration ne fonctionneront pas tant qu'un exécutable autonome n'est pas compilé à partir du serveur, mais vous pouvez toujours les utiliser si vous savez comment le configurer pour exécuter à partir du code source du serveur.
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 ,
})Après avoir installé les dépendances, vous devrez avoir une configuration LSP fonctionnelle dans Neovim à l'aide de LSPConfig. Ensuite, vous devrez suivre le guide de contribution de LSPConfig pour ajouter manuellement cette configuration de serveur.
Le fichier de configuration: 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 ,
},
}Ensuite, vous pouvez activer ce serveur dans le fichier LUA que vous utilisez pour configurer tous les autres serveurs.
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 vous rencontrez des problèmes lors de l'utilisation du serveur de langage HTTP, veuillez vérifier ce qui suit:
HTTP Language Server est concédé sous licence de la licence MIT . Voir Licence.md