LSP சேவையகங்கள்
Dropstone உங்கள் LSP சேவையகங்களுடன் ஒருங்கிணைக்கிறது.
Dropstone உங்கள் Language Server Protocol (LSP) உடன் ஒருங்கிணைந்து LLM உங்கள் கோட்பேஸுடன் தொடர்பு கொள்ள உதவ முடியும். இது LLM க்கு கருத்து வழங்க நির்ணயங்களைப் பயன்படுத்துகிறது.
உள்ளமைக்கப்பட்ட
Dropstone பிரபலமான மொழிகளுக்கு பல உள்ளமைக்கப்பட்ட LSP சேவையகங்களுடன் வருகிறது:
| LSP சேவையகம் | நீட்டிப்புகள் | தேவைகள் |
|---|---|---|
| astro | .astro | Astro திட்டங்களுக்கு தானாக நிறுவுகிறது |
| bash | .sh, .bash, .zsh, .ksh | bash-language-server தானாக நிறுவுகிறது |
| clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | C/C++ திட்டங்களுக்கு தானாக நிறுவுகிறது |
| csharp | .cs, .csx | .NET SDK நிறுவப்பட்டுள்ளது |
| clojure-lsp | .clj, .cljs, .cljc, .edn | clojure-lsp கட்டளை கிடைக்கிறது |
| dart | .dart | dart கட்டளை கிடைக்கிறது |
| deno | .ts, .tsx, .js, .jsx, .mjs | deno கட்டளை கிடைக்கிறது (deno.json/deno.jsonc தானாக கண்டறிகிறது) |
| elixir-ls | .ex, .exs | elixir கட்டளை கிடைக்கிறது |
| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | திட்டத்தில் eslint சார்பு |
| fsharp | .fs, .fsi, .fsx, .fsscript | .NET SDK நிறுவப்பட்டுள்ளது |
| gleam | .gleam | gleam கட்டளை கிடைக்கிறது |
| gopls | .go | go கட்டளை கிடைக்கிறது |
| hls | .hs, .lhs | haskell-language-server-wrapper கட்டளை கிடைக்கிறது |
| jdtls | .java | Java SDK (version 21+) நிறுவப்பட்டுள்ளது |
| julials | .jl | julia மற்றும் LanguageServer.jl நிறுவப்பட்டுள்ளது |
| kotlin-ls | .kt, .kts | Kotlin திட்டங்களுக்கு தானாக நிறுவுகிறது |
| lua-ls | .lua | Lua திட்டங்களுக்கு தானாக நிறுவுகிறது |
| nixd | .nix | nixd கட்டளை கிடைக்கிறது |
| ocaml-lsp | .ml, .mli | ocamllsp கட்டளை கிடைக்கிறது |
| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | திட்டத்தில் oxlint சார்பு |
| php intelephense | .php | PHP திட்டங்களுக்கு தானாக நிறுவுகிறது |
| prisma | .prisma | prisma கட்டளை கிடைக்கிறது |
| pyright | .py, .pyi | pyright சார்பு நிறுவப்பட்டுள்ளது |
| razor | .razor, .cshtml | .NET SDK மற்றும் VS Code C# நீட்டிப்பு நிறுவப்பட்டுள்ளது |
| ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | ruby மற்றும் gem கட்டளைகள் கிடைக்கிறது |
| rust | .rs | rust-analyzer கட்டளை கிடைக்கிறது |
| sourcekit-lsp | .swift, .objc, .objcpp | swift நிறுவப்பட்டுள்ளது (macOS இல் xcode) |
| svelte | .svelte | Svelte திட்டங்களுக்கு தானாக நிறுவுகிறது |
| terraform | .tf, .tfvars | GitHub வெளியீடுகளிலிருந்து தானாக நிறுவுகிறது |
| tinymist | .typ, .typc | GitHub வெளியீடுகளிலிருந்து தானாக நிறுவுகிறது |
| typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | திட்டத்தில் typescript சார்பு |
| vue | .vue | Vue திட்டங்களுக்கு தானாக நிறுவுகிறது |
| yaml-ls | .yaml, .yml | Red Hat yaml-language-server தானாக நிறுவுகிறது |
| zls | .zig, .zon | zig கட்டளை கிடைக்கிறது |
LSP இயக்கப்பட்டிருக்கும்போது, மேலே உள்ள கோப்பு நீட்டிப்புகளில் ஒன்று கண்டறியப்பட்டு தேவைகள் பூர்த்தி செய்யப்பட்டால் சேவையகங்கள் தொடங்குகின்றன.
இது எவ்வாறு செயல்படுகிறது
LSP இயக்கப்பட்டிருக்கும்போது dropstone ஒரு கோப்பைத் திறக்கும்போது, இது:
- கோப்பு நீட்டிப்பை அனைத்து இயக்கப்பட்ட LSP சேவையகங்களுக்கு எதிராக சரிபார்க்கிறது.
- ஏற்கனவே இயங்கவில்லை என்றால் பொருத்தமான LSP சேவையகத்தைத் தொடங்குகிறது.
கட்டமைக்க
உங்கள் dropstone கட்டமைப்பில் lsp பிரிவின் மூலம் LSP சேவையகங்களை இயக்கி தனிப்பயனாக்க முடியும்.
அனைத்து உள்ளமைக்கப்பட்ட LSP சேவையகங்களை இயக்க, lsp ஐ true ஆக அமைக்கவும்.
{
"$schema": "https://dropstone.io/schema/config.json",
"lsp": true
}
உள்ளமைக்கப்பட்டவற்றை இயக்கியே வைத்துக்கொண்டு மேலெழுதுதல்கள் அல்லது தனிப்பயன் சேவையகங்களை கட்டமைக்க ஒரு பொருளைப் பயன்படுத்தவும்.
{
"$schema": "https://dropstone.io/schema/config.json",
"lsp": {}
}
ஒவ்வொரு கட்டமைக்கப்பட்ட LSP சேவையக உள்ளீடு பின்வருவனவற்றை ஆதரிக்கிறது:
சேவையக உள்ளீடுகளுக்கு command தேவை, அவை ஒரு சேவையகத்தை முடக்கும் வரை.
| சொத்து | வகை | விளக்கம் |
|---|---|---|
disabled | boolean | LSP சேவையகத்தை முடக்க இதை true ஆக அமைக்கவும் |
command | string[] | LSP சேவையகத்தைத் தொடங்க கட்டளை |
extensions | string[] | இந்த LSP சேவையகம் கையாள வேண்டிய கோப்பு நீட்டிப்புகள் |
env | object | சேவையகத்தைத் தொடங்கும்போது அமைக்க சூழல் மாறிகள் |
initialization | object | LSP சேவையகத்திற்கு அனுப்ப ஆரம்ப விருப்பங்கள் |
சில உதாரணங்களைப் பார்ப்போம்.
சூழல் மாறிகள்
LSP சேவையகத்தைத் தொடங்கும்போது சூழல் மாறிகளை அமைக்க env சொத்தைப் பயன்படுத்தவும்:
{
"$schema": "https://dropstone.io/schema/config.json",
"lsp": {
"rust": {
"command": ["rust-analyzer"],
"env": {
"RUST_LOG": "debug"
}
}
}
}
ஆரம்ப விருப்பங்கள்
LSP சேவையகத்திற்கு ஆரம்ப விருப்பங்களை அனுப்ப initialization சொத்தைப் பயன்படுத்தவும். இவை LSP initialize கோரிக்கையின் போது அனுப்பப்படும் சேவையக-குறிப்பிட்ட அமைப்புகள்:
{
"$schema": "https://dropstone.io/schema/config.json",
"lsp": {
"custom-lsp": {
"command": ["custom-lsp-server", "--stdio"],
"extensions": [".custom"],
"initialization": {
"preferences": {
"importModuleSpecifierPreference": "relative"
}
}
}
}
}
Note:
ஆரம்ப விருப்பங்கள் LSP சேவையகத்தைப் பொறுத்து மாறுபடும். கிடைக்கும் விருப்பங்களுக்கு உங்கள் LSP சேவையகத்தின் ஆவணங்களைச் சரிபார்க்கவும்.
LSP சேவையகங்களை முடக்குதல்
lsp தவிர்க்கப்பட்டால், அனைத்து LSP சேவையகங்களும் முடக்கப்படும். மற்றொரு கட்டமைப்பு அவற்றை இயக்கிய பிறகு அனைத்து LSP சேவையகங்களையும் முடக்க, lsp ஐ false ஆக அமைக்கவும்:
{
"$schema": "https://dropstone.io/schema/config.json",
"lsp": false
}
குறிப்பிட்ட LSP சேவையகத்தை முடக்க, disabled ஐ true ஆக அமைக்கவும்:
{
"$schema": "https://dropstone.io/schema/config.json",
"lsp": {
"typescript": {
"disabled": true
}
}
}
தனிப்பயன் LSP சேவையகங்கள்
கட்டளை மற்றும் கோப்பு நீட்டிப்புகளைக் குறிப்பிடுவதன் மூலம் தனிப்பயன் LSP சேவையகங்களைச் சேர்க்க முடியும்:
{
"$schema": "https://dropstone.io/schema/config.json",
"lsp": {
"custom-lsp": {
"command": ["custom-lsp-server", "--stdio"],
"extensions": [".custom"]
}
}
}
கூடுதல் தகவல்
PHP Intelephense
PHP Intelephense உரிமை விசையின் மூலம் பிரீமியம் அம்சங்களை வழங்குகிறது. உரிமை விசையை பின்வரும் இடத்தில் ஒரு உரை கோப்பில் வைப்பதன் மூலம் வழங்க முடியும்:
- macOS/Linux இல்:
$HOME/intelephense/license.txt - Windows இல்:
%USERPROFILE%/intelephense/license.txt
கோப்பு கூடுதல் உள்ளடக்கம் இல்லாமல் உரிமை விசையை மட்டுமே கொண்டிருக்க வேண்டும்.