Claude Code-მა ფარულად განაახლა და საბოლოოდ აღარ არის "ტექსტის საძიებო მანქანა"
კოდის წერისას, გიფიქრიათ თუ არა ერთ საკითხზე:
რატომ შეგიძლიათ VS Code-ში Ctrl + Click-ით პირდაპირ ფუნქციის განსაზღვრებაზე გადასვლა? რატომ შეგიძლიათ მაუსის ფუნქციაზე გადატანით იხილოთ პარამეტრების სრული აღწერა? რატომ შეუძლია თქვენს რედაქტორს გითხრათ, სად არის შეცდომა, სანამ თქვენი კოდი ამოქმედდება?
თქვენ ამ ფუნქციებს ყოველდღიურად იყენებთ და სიამოვნებას იღებთ.
მაგრამ შესაძლოა არ იცოდეთ, რომ ამ ყველაფერს მხარს უჭერს LSP (Language Server Protocol).
უფრო მნიშვნელოვანია, რომ Claude Code 2.0.74 ვერსიიდან, LSP-საც უჭერს მხარს.
რას ნიშნავს ეს?
ეს ნიშნავს, რომ Claude Code საბოლოოდ გადაიქცა "ტექსტის საძიებო მანქანიდან" კოდის ნამდვილად გამგებ AI-ად.
რა არის LSP? მარტივად რომ ვთქვათ
LSP არის Microsoft-ის მიერ შექმნილი პროტოკოლი, რომლის მიზანიც მარტივია:
კოდის ინტელექტუალური ფუნქციები ხელმისაწვდომი გახადოს ნებისმიერ რედაქტორში.
შეხედეთ:
-
TypeScript-ის ენის სერვერი, მუშაობს VS Code-ში, მუშაობს JetBrains-ში, მუშაობს Cursor-ში
-
ახლა, ის ასევე მუშაობს Claude Code-ში
LSP არის ის, რაც თქვენს რედაქტორს ჭკვიანს ხდის:
-
ფუნქციის სახელისა და პარამეტრების ავტომატური შევსება
-
განსაზღვრებაზე გადასვლა
-
ყველა მითითების პოვნა
-
დოკუმენტაციის ჩვენება გადატანისას
-
რეალურ დროში შეცდომების და გაფრთხილებების ჩვენება
თქვენ ამ ფუნქციებს უთვალავჯერ იყენებთ კოდის წერისას.
მაგრამ არასდროს გიფიქრიათ, როგორ ხორციელდება ეს.
ახლა არ არის საჭირო ფიქრი, უბრალოდ უნდა იცოდეთ: Claude Code-ს ახლა ეს შესაძლებლობებიც აქვს.
როგორ მუშაობდა Claude Code ადრე?
LSP-ის მხარდაჭერამდე, როგორ უნდა ეპოვა Claude Code-ს ფუნქციის განსაზღვრება?
grep-ის ძიებით.
მარტივად რომ ვთქვათ, ეს არის სრული ტექსტის ძიება, იმის პოვნა, თუ სად ჩნდება სიმბოლოები "displayBooks".
ეს გამოსადეგია? კი, გამოსადეგია.
AI მოდელმა გაიარა უზარმაზარი კოდის ტრენინგი და ნამდვილად შეუძლია ტექსტიდან ბევრი რამის გამოტანა.
მაგრამ რა არის პრობლემა?
მას ნამდვილად არ ესმის კოდის სტრუქტურა.
ისევე, როგორც თქვენ სთხოვთ ადამიანს იპოვოს "ჯონ დოუ", მას შეუძლია მხოლოდ ტელეფონის წიგნის გვერდების გადაფურცვლა და სიტყვების "ჯონ დოუ" პოვნა.
მაშინ როცა თქვენ ტელეფონით ეძებთ "ჯონ დოუს", პირდაპირ უკავშირდებით მონაცემთა ბაზას და შედეგი წამებში ჩნდება.
ეს არის განსხვავება.
წინა Claude Code: კითხულობდა თითოეულ ფაილს და ეყრდნობოდა ტექსტის შესაბამისობას. ახლანდელი Claude Code: პირდაპირ ეკითხება ენის სერვერს და ზუსტად განსაზღვრავს ადგილს.
ეფექტურობის სხვაობა უზარმაზარია.
რა მოუტანა LSP-მ Claude Code-ს?
5 ძირითადი შესაძლებლობა, თითოეული ეფექტურობის გამაძლიერებელია:
1. goToDefinition - განსაზღვრებაზე გადასვლა
რას აკეთებთ VS Code-ში Ctrl+Click-ით? პირდაპირ გადადიხართ ფუნქციის განსაზღვრების ადგილას.
ახლა Claude Code-საც შეუძლია ამის გაკეთება.
თქვენ ეკითხებით მას: "სად არის განსაზღვრული processRequest ფუნქცია? გამოიყენე LSP"
ის სულელურად არ ეძებს ყველა ფაილში.
ის პირდაპირ ეკითხება ენის სერვერს და პასუხს წამებში იღებს: ფაილის სახელი, ხაზის ნომერი, ზუსტი ადგილმდებარეობა.
2. findReferences - ყველა მითითების პოვნა
ეს არის მკვლელი ფუნქცია.
თქვენ გსურთ ფუნქციის რეფაქტორინგი, მაგრამ გეშინიათ შეცვლის, რადგან გეშინიათ, რომ სხვა ადგილები დაზიანდება.
რა უნდა გააკეთოთ?
ადრე თქვენ უნდა გეთხოვათ Claude Code-ს თითოეული ფაილის წაკითხვა, რაც საშინლად ნელი იყო.
ახლა პირდაპირ ეკითხებით: "სად არის გამოძახებული displayError ფუნქცია? გამოიყენე LSP"
ენის სერვერი პირდაპირ ჩამოგითვლით ყველა მითითების ადგილს.
სწრაფად, ზუსტად და დაუნდობლად.
3. hover - დოკუმენტაციისა და ტიპის ინფორმაციის მიღება
თქვენ შეგიძლიათ იხილოთ ფუნქციის ხელმოწერა, პარამეტრების ტიპები და დოკუმენტაციის აღწერა VS Code-ში მაუსის გადატანით.
Claude Code-ს ახლა ასევე შეუძლია ამის ნახვა.
ჰკითხეთ მას: "რა პარამეტრებს იღებს displayBooks ფუნქცია? გამოიყენე LSP"
მას გამოცნობა არ სჭირდება, ის პირდაპირ კითხულობს ენის სერვერის მიერ დაბრუნებულ ხელმოწერას.
განსაკუთრებით Python-ის მსგავსი დინამიური ენებისთვის, ადრე Claude-ს შეეძლო მხოლოდ კონტექსტის საფუძველზე ტიპის გამოტანა.ახლა უკვე LSP-ით, ტიპების ინფორმაცია თვალსაჩინოა.
4. documentSymbol - ჩამოთვალეთ ფაილის ყველა სიმბოლო
გსურთ სწრაფად გაიგოთ, რა კლასები, ფუნქციები და ცვლადებია ფაილში?
ჰკითხეთ Claude-ს: "რა სიმბოლოებია backend/index.js-ში? გამოიყენე LSP"
ის დაგიბრუნებთ სტრუქტურირებულ სიას, ყველაფერი ნათლად ჩანს.
5. workspaceSymbol - პროექტის ყველა სიმბოლოს ძიება
ეს უფრო მაგარია.
არ ეძებს ტექსტს, ეძებს სიმბოლოებს.
გსურთ იპოვოთ ყველა მეთოდი, რომელიც შეიცავს "innerHTML"-ს?
ენის სერვერი პირდაპირ გიპოვით, ეს არ არის სტრიქონების დამთხვევა, ეს არის ნამდვილი კოდის სიმბოლო.
პრაქტიკაში: რა პრობლემების გადაჭრა შეუძლია LSP-ს?
ნუ ილაპარაკებთ აბსტრაქტულად, ნახეთ რეალური მაგალითები.
მაგალითი 1: ფუნქციის გამოძახების თვალყურის დევნება
არის პროექტი სახელად AseBook Finder, ფრონტენდს აქვს displayBooks ფუნქცია.
გსურთ იცოდეთ, სად გამოიძახება ეს ფუნქცია.
ადრე რას აკეთებდით? Claude Code grep-ს გაუშვებდით, შესაძლოა გამოგრჩეთ ან ცრუ შეტყობინება მიიღოთ.
ახლა პირდაპირ ჰკითხეთ: "იპოვე displayBooks-ის ყველა მითითება LSP-ის გამოყენებით"
შედეგი:
-
ფუნქციის განსაზღვრის ადგილმდებარეობა
-
fetch-ის წარმატებით დასრულების შემდეგ გამოძახების ადგილმდებარეობა
-
ყველა სხვა მითითების ადგილმდებარეობა
ზუსტი, სწრაფი, გამოტოვების გარეშე.
მაგალითი 2: ფუნქციის პარამეტრების გაგება
გსურთ, რომ Claude-მ შექმნას კოდის ნაწილი, რომელიც გამოიძახებს displayError ფუნქციას.
მაგრამ არ ხართ დარწმუნებული, რა პარამეტრებს იღებს ეს ფუნქცია.
ჰკითხეთ მას: "რა პარამეტრებს იღებს displayError? გამოიყენე LSP"
ენის სერვერი პირდაპირ დააბრუნებს: იღებს message პარამეტრს.
Claude-მ იცის და გენერირებული კოდი შეცდომას არ დაუშვებს.
მაგალითი 3: API გამოძახების პოვნა
გსურთ იპოვოთ, სად გამოიძახება /api/recommendations ინტერფეისი პროექტში.
ჰკითხეთ Claude-ს: "იპოვე /api/recommendations-ის ყველა მითითება LSP-ის გამოყენებით"
ის იპოვის fetch გამოძახების ადგილს, ზუსტად ხაზამდე.
API პრობლემების გამართვა, მონაცემთა ნაკადის თვალყურის დევნება, ძალიან სასარგებლოა.
მაგალითი 4: შეცდომების ადრე აღმოჩენა
თქვენ ახორციელებთ კოდის რეფაქტორინგს და შემთხვევით შეცდომით წერთ ცვლადის სახელს.
ნორმალურ პირობებში, შეცდომის აღმოსაჩენად კოდის გაშვება მოგიწევთ.
მაგრამ LSP-ის საშუალებით, ენის სერვერი რეალურ დროში ამოწმებს და პრობლემის აღმოჩენისთანავე აცნობებს Claude Code-ს.
Claude გეუბნებათ, რომ აქ შეცდომაა კოდის გაშვებამდე.
როგორ დავაყენოთ? 5 ნაბიჯში
ნუ პანიკობთ, დაყენება მარტივია.
ნაბიჯი 1: LSP ხელსაწყოების ჩართვა
თქვენი shell კონფიგურაციის ფაილში (.bashrc ან .zshrc) დაამატეთ ხაზი:
exportENABLE_LSP_TOOLS=1შემდეგ გაუშვით source ~/.zshrc ცვლილებების გამოსაყენებლად.
ნაბიჯი 2: ენის სერვერის დანამატის დაყენება
გახსენით Claude Code და შეიყვანეთ:
/pluginიპოვეთ თქვენი ენის შესაბამისი დანამატი:
-
Python: აირჩიეთ pyright-lsp
-
TypeScript/JavaScript: აირჩიეთ vtsls ან typescript-lsp
-
Go: აირჩიეთ gopls
-
Rust: აირჩიეთ rust-analyzer
აირჩიეთ "Install for me only", დააინსტალირეთ.
ნაბიჯი 3: ენის სერვერის ბინარული ფაილის დაყენება
დანამატი მხოლოდ ინტერფეისია, რეალურ სამუშაოს ენის სერვერი ასრულებს.
Python:
pip install pyrightTypeScript/JavaScript:
npm install -g @vtsls/language-server typescriptGo:
go install golang.org/x/tools/gopls@latestRust:
rustup component add rust-analyzer
ნაბიჯი 4: Claude Code-ის გადატვირთვაინსტალაციის შემდეგ, გადატვირთეთ Claude Code.
claude
ნაბიჯი 5: შეამოწმეთ მუშაობს თუ არა
შეიყვანეთ /plugin და შეამოწმეთ "Installed" ჩანართი, თუ ხედავთ თქვენს დანამატს, ყველაფერი სწორია.
გამოცადეთ:
გამოიყენეთ LSP someFunction-ის ყველა მითითების მოსაძებნად თუ Claude Code იყენებს find_references ინსტრუმენტს grep-ის ნაცვლად, ეს ნიშნავს, რომ წარმატებით დააინსტალირეთ.
როდის გამოვიყენოთ LSP? როდის არა?
LSP არ არის პანაცეა.
სცენარები, როდესაც LSP-ის გამოყენება მიზანშეწონილია:
-
დიდი პროექტები (რამდენიმე ასეული ფაილი)
-
ფუნქციის გამოძახებების გადაკვეთა ფაილებში
-
საჭიროა ფუნქციის ზუსტი ხელმოწერა (განსაკუთრებით დინამიურ ენებში)
-
კოდის რეფაქტორინგი, შეცდომების დაშვების შიშით
სცენარები, როდესაც LSP-ის გამოყენება არ არის მიზანშეწონილი:
-
მცირე პროექტები, სწრაფი სკრიპტები
-
მარტივი ტექსტის ძიება
-
უბრალოდ სიმბოლოს პოვნა სადმე
მარტივად რომ ვთქვათ, გამოიყენეთ grep, როდესაც ის სწრაფია, და LSP, როდესაც ის ზუსტია.
ინსტრუმენტი ადამიანს უნდა ემსახურებოდეს და არა პირიქით.
რამდენიმე ხარვეზი, წინასწარ რომ იცოდეთ
ხარვეზი 1: ენის სერვერი უნდა იყოს PATH-ში
თუ Claude Code ამბობს "No LSP server available", სავარაუდოდ თქვენი ენის სერვერი არ არის სწორად დაინსტალირებული ან არ არის PATH-ში.
ტერმინალში გაუშვით which pyright (ან თქვენი ენის სერვერი), რომ ნახოთ, შესაძლებელია თუ არა მისი პოვნა.
ხარვეზი 2: დანამატის დაყენების შემდეგ საჭიროა გადატვირთვა
ახალი დანამატის დაყენების ან ენის სერვერის განახლების შემდეგ, აუცილებლად გადატვირთეთ Claude Code.
ენის სერვერი იტვირთება გაშვებისას.
ხარვეზი 3: ზოგჯერ საჭიროა მკაფიოდ თქმა "გამოიყენეთ LSP"
თუ აღმოაჩენთ, რომ Claude Code კვლავ იყენებს grep-ს LSP-ის ნაცვლად, დაამატეთ ფრაზა "გამოიყენეთ LSP":
გამოიყენეთ LSP authenticateUser-ის ყველა მითითების მოსაძებნად ამ გზით მან იცის, რომ უნდა გამოიყენოს ენის სერვერი.
ხარვეზი 4: არ არის ვიზუალური მინიშნებები
VS Code-სგან განსხვავებით, Claude Code არ გეტყვით, მუშაობს თუ არა LSP სერვერი.
არ არის სტატუსის ზოლის ხატულა, არ არის შეტყობინებები.
ერთადერთი გზა დასადასტურებლად: რეალური ტესტირება.
დასასრულს ორი სიტყვა
Claude Code-ის მიერ LSP-ის მხარდაჭერა არ არის მცირე განახლება, ეს არის ხარისხობრივი ცვლილება.
ადრე ეს იყო "ტექსტის ძიება + AI დასკვნა".
ახლა ეს არის "ენის სერვერი + AI გაგება".
ეს ჰგავს ტელეფონის ცნობარის გადაფურცვლას საძიებო სისტემის გამოყენების ნაცვლად.
ეფექტურობის სხვაობა უზარმაზარია.
თუ თქვენ იყენებთ Claude Code-ს სერიოზული პროექტებისთვის, დაუთმეთ 5 წუთი LSP-ის დასაყენებლად.
ეს 5 წუთი ღირს.
მოქმედებების სია:
-
დაამატეთ
export ENABLE_LSP_TOOLS=1shell-ის კონფიგურაციაში -
გახსენით Claude Code და გაუშვით
/pluginთქვენი ენის დანამატის დასაყენებლად -
დააინსტალირეთ შესაბამისი ენის სერვერის ბინარული ფაილი
-
გადატვირთეთ Claude Code
-
შეამოწმეთ "გამოიყენეთ LSP XXX-ის ყველა მითითების მოსაძებნად"
ინსტალაციის შემდეგ, აღმოაჩენთ, რომ: როგორც ჩანს, Claude Code ამაზე სწრაფიც შეიძლება იყოს.





