Claude Code sai salaa päivityksen, ei ole enää pelkkä "tekstihakukone"
Oletko koodatessasi koskaan miettinyt seuraavaa:
Miksi VS Code:ssa Ctrl + klikkaamalla pääsee suoraan funktion määrittelyyn? Miksi funktion päällä hiirtä leijuttamalla näkee täydelliset parametritiedot? Miksi editori kertoo virheistä jo ennen koodin suorittamista?
Käytät näitä toimintoja päivittäin ja nautit niistä täysin rinnoin.
Mutta et ehkä tiedä, että kaiken tämän takana on LSP (Language Server Protocol).
Mikä vielä tärkeämpää, Claude Code tukee LSP:tä versiosta 2.0.74 alkaen.
Mitä tämä tarkoittaa?
Se tarkoittaa, että Claude Codesta on vihdoin tullut koodia todella ymmärtävä tekoäly "tekstihakukoneen" sijaan.
Mikä on LSP? Selkokielellä
LSP on Microsoftin kehittämä protokolla, jonka tavoite on yksinkertainen:
Mahdollistaa älykkäät kooditoiminnot missä tahansa editorissa.
Katso:
-
TypeScriptin kielipalvelin toimii VS Codessa, JetBrainsissa ja Cursorissa
-
Nyt se toimii myös Claude Codessa
LSP on se, mikä tekee editoristasi älykkään:
-
Automaattinen funktion nimien ja parametrien täydennys
-
Siirtyminen määrittelyyn
-
Kaikkien viittausten etsiminen
-
Dokumentaation näyttäminen hiirellä leijuttamalla
-
Reaaliaikaiset virheet ja varoitukset
Käytät näitä toimintoja lukemattomia kertoja päivittäin koodatessasi.
Mutta et ole koskaan miettinyt, miten ne toteutetaan.
Nyt sinun ei tarvitse miettiä, riittää kun tiedät: Claude Codella on nyt myös nämä ominaisuudet.
Miten Claude Code toimi aiemmin?
Ennen LSP:n tukea, miten Claude Code etsi funktion määrittelypaikkaa?
Käyttämällä grep-hakua.
Lyhyesti sanottuna se oli kokotekstihaku, joka etsi merkkijonoa "displayBooks".
Toimiko se? Kyllä toimi.
Tekoälymalli on koulutettu valtavalla määrällä koodia, joten se pystyi päättelemään paljon asioita tekstistä.
Mutta mikä oli ongelma?
Se ei todella ymmärtänyt koodin rakennetta.
Se on kuin pyytäisit jotakuta etsimään "Matti Meikäläinen", jolloin hänen täytyisi selata puhelinluetteloa sivu sivulta etsien näitä sanoja.
Kun taas puhelimella hakisit "Matti Meikäläinen", se hakisi suoraan tietokannasta ja antaisi tuloksen heti.
Tässä on ero.
Aiempi Claude Code: luki tiedostoja yksitellen ja käytti tekstin täsmäytystä. Nykypäivän Claude Code: kysyy suoraan kielipalvelimelta ja paikantaa tarkasti.
Tehokkuusero on huomattava.
Mitä LSP toi Claude Codelle?
5 ydintoimintoa, joista jokainen on tehokkuuden kannalta ratkaiseva:
1. goToDefinition - Siirry määrittelyyn
Mitä VS Codessa Ctrl+Click tekee? Hyppää suoraan funktion määrittelypaikkaan.
Nyt Claude Code pystyy samaan.
Kysyt siltä: "Missä processRequest-funktio on määritelty? Käytä LSP:tä"
Se ei tyhmästi etsi kaikkia tiedostoja läpi.
Se kysyy suoraan kielipalvelimelta ja saa vastauksen heti: tiedostonimi, rivinumero, tarkka sijainti.
2. findReferences - Etsi kaikki viittaukset
Tämä on tappavan tehokas toiminto.
Haluat uudelleenjärjestää funktion, mutta et uskalla muuttaa sitä, koska pelkäät, että se rikkoo jotain muuta.
Mitä teet?
Aiemmin sinun piti antaa Claude Coden lukea tiedostoja yksitellen, mikä oli todella hidasta.
Nyt kysyt suoraan: "Missä displayError-funktiota on kutsuttu? Käytä LSP:tä"
Kielipalvelin listaa suoraan kaikki viittauspaikat.
Nopeaa, tarkkaa ja tehokasta.
3. hover - Hae dokumentaatiota ja tyyppitietoja
VS Codessa hiirtä leijuttamalla näet funktion allekirjoituksen, parametrien tyypit ja dokumentaation.
Claude Code näkee nyt myös ne.
Kysy siltä: "Mitä parametreja displayBooks-funktio hyväksyy? Käytä LSP:tä"
Sen ei tarvitse arvailla, se lukee suoraan kielipalvelimen palauttaman allekirjoituksen.
Erityisesti Pythonin kaltaisissa dynaamisissa kielissä Claude pystyi aiemmin päättelemään tyypin vain kontekstin perusteella. Nyt LSP:n avulla tyyppitiedot ovat selkeitä.
4. documentSymbol - Listaa kaikki tiedoston symbolit
Haluatko nopeasti selvittää, mitä luokkia, funktioita ja muuttujia tiedosto sisältää?
Kysy Claudelta: "Mitkä symbolit ovat tiedostossa backend/index.js? Käytä LSP:tä"
Se palauttaa jäsennellyn luettelon, selkeästi.
5. workspaceSymbol - Koko projektin symbolihaku
Tämä on vielä tehokkaampi.
Ei etsi tekstiä, vaan symboleita.
Haluatko löytää kaikki "innerHTML"-menetelmät?
Kielipalvelin löytää ne suoraan, ei merkkijonojen täsmäytystä, vaan todellisia koodisymboleita.
Käytännössä: Mitä ongelmia LSP todella ratkaisee?
Älä jauha tyhjää, katso todellisia tapauksia.
Tapaus 1: Funktion kutsujen jäljittäminen
On olemassa projekti nimeltä AseBook Finder, jonka etupäässä on displayBooks-funktio.
Haluat tietää, missä kaikkialla tätä funktiota kutsutaan.
Mitä teit aiemmin? Claude Code grep -komennolla, saattaa jäädä huomaamatta, saattaa antaa vääriä hälytyksiä.
Nyt kysy suoraan: "Etsi kaikki displayBooks-viittaukset LSP:n avulla"
Tulos:
-
Funktion määrittelypaikka
-
Paikka, jossa sitä kutsutaan fetch-onnistumisen jälkeen
-
Kaikki muut viittauspaikat
Tarkka, nopea, ei puutteita.
Tapaus 2: Funktion parametrien ymmärtäminen
Haluat, että Claude luo koodinpätkän, joka kutsuu displayError-funktiota.
Mutta et ole varma, mitä parametreja tämä funktio hyväksyy.
Kysy siltä: "Mitä parametreja displayError hyväksyy? Käytä LSP:tä"
Kielipalvelin palauttaa suoraan: hyväksyy message-parametrin.
Claude tietää tämän, joten luotu koodi ei sisällä virheitä.
Tapaus 3: API-kutsujen etsiminen
Haluat löytää projektista paikan, jossa kutsutaan /api/recommendations-rajapintaa.
Kysy Claudelta: "Etsi kaikki /api/recommendations-viittaukset LSP:n avulla"
Se löytää fetch-kutsun paikan, tarkasti riville asti.
API-ongelmien vianmääritys, datavirran jäljittäminen, erittäin hyödyllistä.
Tapaus 4: Virheiden havaitseminen etukäteen
Olet refaktoroimassa koodia ja kirjoitat vahingossa muuttujan nimen väärin.
Normaalisti sinun on suoritettava koodi, jotta löydät virheen.
Mutta LSP:n avulla kielipalvelin tarkistaa reaaliajassa ja raportoi ongelmasta heti Claude Codelle.
Claude kertoo sinulle virheestä ennen kuin suoritat koodin.
Miten asennetaan? 5 vaihetta
Älä hätäänny, asennus on helppoa.
Vaihe 1: Ota LSP-työkalut käyttöön
Lisää rivi shell-määritystiedostoosi (.bashrc tai .zshrc):
exportENABLE_LSP_TOOLS=1 ja suorita sitten source ~/.zshrc aktivoidaksesi sen.
Vaihe 2: Asenna kielipalvelinlaajennus
Avaa Claude Code ja kirjoita:
/plugin löytääksesi kielesi vastaavan laajennuksen:
-
Python: valitse pyright-lsp
-
TypeScript/JavaScript: valitse vtsls tai typescript-lsp
-
Go: valitse gopls
-
Rust: valitse rust-analyzer
Valitse "Install for me only" ja asenna.
Vaihe 3: Asenna kielipalvelimen binääritiedostot
Laajennus on vain rajapinta, varsinaisen työn tekee kielipalvelin itse.
Python:
pip install pyright
TypeScript/JavaScript:
npm install -g @vtsls/language-server typescript
Go:
go install golang.org/x/tools/gopls@latest
Rust:
rustup component add rust-analyzer
Vaihe 4: Käynnistä Claude Code uudelleenAsennuksen jälkeen, käynnistä Claude Code uudelleen.
claude
Vaihe 5: Varmista, että se toimii
Kirjoita /plugin ja tarkista "Installed"-välilehti. Jos näet lisäosasi siellä, kaikki on kunnossa.
Testaa:
Etsi kaikki viittaukset funktioon someFunction LSP:n avulla Jos Claude Code käyttää find_references-työkalua grep:n sijaan, se onnistui.
Milloin käyttää LSP:tä? Milloin ei?
LSP ei ole mikään ihmelääke.
Sopivat tilanteet LSP:n käytölle:
-
Suuret projektit (satoja tiedostoja)
-
Funktiokutsujen jäljittäminen tiedostojen välillä
-
Tarvitaan tarkkoja funktiosignatureja (erityisesti dynaamisissa kielissä)
-
Koodin refaktorointi, pelko bugien syntymisestä
Tilanteet, joissa LSP ei sovi:
-
Pienet projektit, nopeat skriptit
-
Yksinkertaiset tekstihaut
-
Vain etsitään merkkijonoa jostain
Lyhyesti sanottuna, käytä grepiä kun se on nopea, ja LSP:tä kun se on tarkka.
Työkalut ovat ihmistä varten, ei toisinpäin.
Muutama sudenkuoppa, joista kerron etukäteen
Sudenkuoppa 1: Kielipalvelimen on oltava PATH-ympäristömuuttujassa
Jos Claude Code sanoo "No LSP server available", on todennäköistä, että kielipalvelintasi ei ole asennettu oikein tai se ei ole PATH-ympäristömuuttujassa.
Aja terminaalissa which pyright (tai kielipalvelimesi nimi) nähdäksesi, löytyykö se.
Sudenkuoppa 2: Asennuksen jälkeen on käynnistettävä uudelleen
Kun olet asentanut uuden lisäosan tai päivittänyt kielipalvelimen, muista käynnistää Claude Code uudelleen.
Kielipalvelimet ladataan käynnistyksen yhteydessä.
Sudenkuoppa 3: Joskus on sanottava selvästi "käytä LSP:tä"
Jos huomaat, että Claude Code käyttää edelleen grepiä LSP:n sijaan, lisää lause "käytä LSP:tä":
Etsi kaikki viittaukset funktioon authenticateUser LSP:n avulla Näin se tietää käyttää kielipalvelinta.
Sudenkuoppa 4: Ei visuaalisia vihjeitä
Toisin kuin VS Code, Claude Code ei kerro, onko LSP-palvelin käynnissä.
Ei tilapalkin kuvaketta, ei ilmoituksia.
Ainoa tapa varmistaa: testaa käytännössä.
Lopuksi pari sanaa
LSP:n tuki Claude Codessa ei ole pieni päivitys, vaan laadullinen muutos.
Aiemmin se oli "tekstihaku + tekoälypäättely".
Nyt se on "kielipalvelin + tekoälyymmärrys".
Se on kuin siirtyisit puhelinluettelon selaamisesta hakukoneen käyttöön.
Tehokkuusero on valtava.
Jos käytät Claude Codea vakaviin projekteihin, käytä 5 minuuttia LSP:n asettamiseen.
Nämä 5 minuuttia ovat sen arvoisia.
Toimintalista:
-
Lisää shell-konfiguraatioon
export ENABLE_LSP_TOOLS=1 -
Avaa Claude Code ja aja
/pluginasentaaksesi kielilisäosasi -
Asenna vastaava kielipalvelimen binääritiedosto
-
Käynnistä Claude Code uudelleen
-
Testaa "Etsi kaikki viittaukset XXX:ään LSP:n avulla"
Asennuksen jälkeen huomaat: Niin nopeasti Claude Code pystyykin toimimaan.





