تحذير هذا المشروع قيد التطوير.
خادم لغة HTTP هو تطبيق LSP لـ HTTP. يساعدك على كتابة رسائل 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 إنشاء .vscode/settings.json ملف وتعيين python.interpreterPath للإشارة إلى بيئة Python حيث يتم تثبيت pygls .
{
"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 مرخص بموجب شروط ترخيص معهد ماساتشوستس للتكنولوجيا . انظر الترخيص