javascript - Kan VS Code kodefullføring konfigureres til å akseptere et forslag ved tegnsetting?


Dette spørsmålet er spesielt rettet mot andre C#-utviklere som går over til TypeScript i VS Code.

Jeg ble forelsket i kodefullføringen i VS C#. For å illustrere, si at jeg prøver å skrive:

console.log('hello')

Ved å bruke C#, ville jeg hatt:

  1. skriv inn "con"
  2. en liste over forslag ville vises, sannsynligvis begynner med "console"
  3. siden det er uthevet og det er det jeg vil, vil det å trykke på " . " skrive ut "sole." så nå har jeg: console.
  4. skriv «l», «log» er det første forslaget
  5. skriv "(", nå har jeg: console.log('')
  6. markøren er nå i ''
  7. skriv inn "hello"

For øyeblikket, med min VS Code-oppsett, kan det samme oppnås i JS/TS ved å trykke tab hver gang jeg vil godta et forslag. Men bare å trykke på neste punktum for å fortsette var virkelig fint, og, hvis du tilgir meg for å bry meg om det, "gøy." Jeg savner det. Og det finnes ingen teknisk begrensning i språkene jeg kjenner til som ville forhindre denne oppførselen.

Vet noen om det finnes noen utvidelse eller innstilling tilgjengelig for å aktivere dette? Eller ellers, hvor ellers kan denne samtalen finne sted?

Svar #1

Man kan implementere dette selv ved å bruke makroutvidelsen. For å gjøre dette:

  1. Installer makroutvidelsen

  2. Lag en makro som kaller handlingen acceptSelectedSuggestion, og skriv deretter .. Slik så min Settings.json ut:

    {
        "editor.wordWrap": "on",
        "window.zoomLevel": 0,
        "git.enableSmartCommit": true,
        "macros": {
            "accept.": [
                "acceptSelectedSuggestion",
                {"command": "type", "args": {"text": "."}}
            ],
            "accept(": [
                "acceptSelectedSuggestion",
                {"command": "type", "args": {"text": "("}}
            ],        
            "accept=": [
                "acceptSelectedSuggestion",
                {"command": "type", "args": {"text": "="}}
            ]
        }
    }
    
  3. La til hver av disse makroene til en hurtigtast i keybindings.json. Mine ekstra hurtigtaster så slik ut:

    {
        "key": ".",
        "command": "macros.accept.",
        "when": "editorTextFocus && suggestWidgetVisible"
    },
    {
        "key": "shift+9",
        "command": "macros.accept(",
        "when": "editorTextFocus && suggestWidgetVisible"
    },
    {
        "key": "=",
        "command": "macros.accept=",
        "when": "editorTextFocus && suggestWidgetVisible"
    }
    

    Dette aktiverer den klassiske VS C# fullføringsadferden for disse 3 spesifikke påfølgende tastene. Eventuelle andre jeg kommer på, kan legges til når jeg husker dem.

Svar #2

Jeg tror ikke du kan legge til . på slutten av console, men du kan gjøre alt annet:

Gå til Fil >> Preferanser >> Tastatursnarveier.

På høyre side av skjermen vil en fil kalt keybindings.json komme opp. Mellom de to parentesene, sett inn dette:

{ "key": ".",                   "command": "acceptSelectedSuggestion",
                                 "when": "editorTextFocus && suggestWidgetVisible" },

Det burde legge til støtte for alle språk.

Relaterte artikler