Neovim — Applicazione di debug

Applicazione di debug scritta in Python, Golang, Rust e Javascript/Typescript.

Applicazione di debug Neovim

Panoramica

Nel precedente articolo su Neovim LSP e DAP , ho configurato DAP usando nvim-dap . In questo articolo, impostiamo il debugger per Python, Golang, Rust e Javascript/Typescript usando vimspector .

Impostare

Installazione del plug-in

Sfrutterò i dotfile che ho configurato nel mio precedente articolo.

In lua/plugins.lua, aggiungi la riga seguente per installare vimspector. Puoi utilizzare qualsiasi gestore di plug-in che preferisci.

-- Debugging
use { 'puremourning/vimspector' }

Installazione dell'adattatore

Crea un file chiamato vimspector.vimnella cartella del plugin con il seguente contenuto.

let g:vimspector_enable_mappings = 'HUMAN'
nmap <leader>vl :call vimspector#Launch()<CR>
nmap <leader>vr :VimspectorReset<CR>
nmap <leader>ve :VimspectorEval
nmap <leader>vw :VimspectorWatch
nmap <leader>vo :VimspectorShowOutput
nmap <leader>vi <Plug>VimspectorBalloonEval
xmap <leader>vi <Plug>VimspectorBalloonEval
let g:vimspector_install_gadgets = [ 'debugpy', 'vscode-go', 'CodeLLDB', 'vscode-node-debug2' ]

  • Python: debug
  • Golang — vscode-go
  • Ruggine — CodeLLDB
  • Javascript/TypeScript — vscode-node-debug2 per l'applicazione Nodejs

Esegui :VimspectorInstalle i 4 adattatori dovrebbero essere installati.

Installazione dell'adattatore Vimspector

Corri :VimspectorToggleLoga vedere la posizione di VIMSPECTOR_HOMEe gadgetDir.

Registro di Vimspector

Configuro la modalità HUMAN in modo da poter utilizzare le Functionchiavi per il debug, ad esempio F5per avviare il debug, F9per attivare o disattivare il punto di interruzione, F10per scavalcare.

Debug di Python

Nella cartella principale del progetto , crea un file chiamato .vimspector.jsoncon il seguente contenuto. Cambia il percorso Python di conseguenza.

{
  "configurations": {
    "<name>: Launch": {
      "adapter": "debugpy",
      "configuration": {
        "name": "Python: Launch",
        "type": "python",
        "request": "launch",
        "python": "~/miniconda3/bin/python",
        "stopOnEntry": true,
        "console": "externalTerminal",
        "debugOptions": [],
        "program": "${file}"
      }
    }
  }
}

Debug di Python

Debug Golang

Nella cartella principale del progetto , crea un file chiamato .vimspector.jsoncon il seguente contenuto. Cambia il dlvToolPathpercorso di conseguenza.

{
  "configurations": {
    "run": {
      "adapter": "vscode-go",
      "configuration": {
        "request": "launch",
        "program": "${fileDirname}",
        "mode": "debug",
        "dlvToolPath": "$HOME/workspace/development/go-lang/bin/dlv"
}
    }
  }
}

Debug Golang

Debug della ruggine

Nella cartella principale del progetto , crea un file chiamato .vimspector.jsoncon il seguente contenuto. Modificare il percorso del programma di conseguenza.

{
  "configurations": {
    "launch": {
      "adapter": "CodeLLDB",
      "configuration": {
        "request": "launch",
        "program": "${workspaceRoot}/target/debug/myapp1"
      }
    }
  }
}

Debug della ruggine

Debug Javascript

Nella cartella principale del progetto , crea un file chiamato .vimspector.jsoncon il seguente contenuto. Modificare il file del programma di conseguenza.

{
  "configurations": {
    "run": {
      "adapter": "vscode-node",
      "configuration": {
        "request": "launch",
        "protocol": "auto",
        "stopOnEntry": true,
        "console": "integratedTerminal",
        "program": "${workspaceRoot}/hello.js",
        "cwd": "${workspaceRoot}"
      }
    }
  }
}

Debug Javascript

Sommario

È molto facile da usare vimspectorper eseguire il debug della tua applicazione. È stabile e facile da configurare. Se stai cercando un plug-in che ti aiuti a eseguire il debug, provalo!

I file dot che ho usato sono disponibili in questo repository .

Suggested posts

Come eseguire i plug-in ChatGPT gratuitamente utilizzando Langchain

Come eseguire i plug-in ChatGPT gratuitamente utilizzando Langchain

Devi aver sentito parlare di tutti i nuovi potenti plug-in ChatGPT come Browser, Code Interpreter ecc. Ma c'è un problema, l'accesso ai plug-in è limitato a una lista di attesa e quindi molti non hanno accesso ad essa.

Le mie risorse di codifica più utilizzate

Le mie risorse di codifica più utilizzate

Questa settimana ho ricevuto un'e-mail da un membro della mailing list quotidiana. Volevano sapere: quali risorse visiti giornalmente, settimanalmente e mensilmente? Ottima domanda! Sono felice di provare a condividere alcune informazioni sul mio flusso di lavoro e sulle migliori risorse che utilizzo.

Related posts

Raccolta di OSINT per la caccia alle minacce

Raccolta di OSINT per la caccia alle minacce

Ehi, cibernetici! Bentornati alla serie OSINT per la caccia alle minacce. Nel primo articolo, ti ho fornito una panoramica di OSINT e della sua importanza nella caccia alle minacce.

La bugia del cowboy

Come le megacorporazioni hanno venduto agli americani una grossa falsità

La bugia del cowboy

È una brillante mattina d'oro sulle dolci colline dell'ovest, mentre i primi raggi di sole illuminano l'erba ghiacciata sulle pianure. Una mandria di placidi bovini Angus, nerissimi e massicci, si staglia contro l'alba mentre percorrono un sentiero battuto verso un luogo che tutti conoscono bene; il bancone della colazione.

L'apprendimento alla settimana lavorativa conta più di quanto pensi

L'apprendimento alla settimana lavorativa conta più di quanto pensi

Spesso ci troviamo a lottare per implementare ciò che sappiamo essere buono per noi. Dal dire a un altro significativo che li amiamo al ricordare di parlare come un pirata, ci saranno sempre quelli che affermeranno che un giorno, una settimana o un mese di eventi non è necessario perché stanno già facendo quelle cose.

VITA SENZA LIMITI

Quando cresci tendi a sentirti dire che il mondo è così com'è e che la tua vita è vivere la tua vita dentro il mondo, senza mai rischiare la vita, basta seguire un percorso prestabilito e morire alla fine, e cercare di non farlo sfondare troppo i muri. Ma questa è una vita molto limitata.