An open API service indexing awesome lists of open source software.

https://github.com/mattiap7/nvim-configuration

Configurazione neovim per lo sviluppo web e low level. la configurazione più completa si trova nella branch main, al momento sto utilizzando la branch "nuovo-branch"
https://github.com/mattiap7/nvim-configuration

configuration lua neovim

Last synced: about 1 year ago
JSON representation

Configurazione neovim per lo sviluppo web e low level. la configurazione più completa si trova nella branch main, al momento sto utilizzando la branch "nuovo-branch"

Awesome Lists containing this project

README

          

# Neovim Configuration per Windows

Questa è una configurazione per Neovim creata per la programmazione di linguaggi: C / C++, html/css/js, python. Questo documento ti guiderà attraverso l'installazione e l'uso di questa configurazione.

## Pre requisiti

Prima di procedere, assicurati di avere i seguenti strumenti installati:

- **Neovim**: Assicurati di avere l'ultima versione di Neovim installata. Puoi verificarlo eseguendo `nvim --version` nel terminale.
- **Git**: Per clonare il repository.
- **Nerd Font**: Come font del terminale.
- Assicurarsi che il nome del font non termini con "Mono" altrimenti le icone saranno piccole.
- **Nodejs**: Per il supporto ai plugin che richiedono Node.js.
- **Ripgrep** per la ricerca "grep" con Telescope.
- Make, **GnuWin32** installato e settato on path.
- **Mingw** installato e settato on path.
- **Clang** installato e settato on path (consiglio LLVM-version-win64.exe)
- Clangd, io l'ho installato tramite scoop.

## Installazione:

Segui questi passaggi per installare e configurare Neovim con questa configurazione:

1. **Clona la Repository**

Apri il terminale e clona la repository:

- cmd

```bash
git clone https://github.com/MattiaP7/nvim-configuration %USERPROFILE%\AppData\Local\nvim
```

- Powershell

```bash
git clone https://github.com/MattiaP7/nvim-configuration $env:LOCALAPPDATA\nvim
```

ricorda di eliminare la cartella `.git`.

la struttura quindi della cartella `~/AppData/Local/nvim`

```
~/AppData/Local/nvim
│ init.lua
│ lazy-lock.json
│ README.md

└───lua
│ .luarc.json
│ options.lua
│ plugins.lua

└───plugins
│ (tutti i plugins qui dentro)

└───lsp
│ (tutti i plugins per lsp)

└───language
(ogni config per i linguaggi qua dentro)
```


3. **Installare i plugin**

Spostarsi nella cartella `~/AppData/Local/nvim` eseguire il comando:

```bash
nvim
```

automaticamente dovrebbero partire i download dei plugin, per verificare il download di essi dentro nvim eseguire il comando (in normal mode): `:Lazy`, questo aprirà la ui di lazy.

> [!CAUTION]
> è possibile che è i plugin non si installino tutti la prima volta, in caso chiudere lazy con `:q` e riaprire nvim e richiamare lazy, fallo finchè tutto non sarà installato.

> [!WARNING]
> ricorda che per installare vim-doge, devi eseguire il comando: `:call doge#install()`

> [!CAUTION]
> Neovim come lsp per c++ utilizza "clangd". Se hai problemi con clangd, per esempio non trova gli header come "iostream", vai alla pagina guida [clangd](clangd.md)

4. **Lsp e Mason**

- documentazione **Mason**
- documentazione **Mason-lspconfig**
- documentazione **nvim-lspconfig**

Di default vengono installati vari language server, formatter, linter, ... per lo sviluppo di linguaggi come: C/C++, python, lua, zig, html, css/tailwind, js/ts/jsx/tsx...

Per installare i language, linter, formatter... di mason, eseguire (in normal mode): `:Mason` questo aprirà la sui ui e con ctrl+f potrete scrivere il vostro linguaggio e vi usciranno i pacchetti consigliati, una volta trovato quello giusto usando "I".

Per installare un language server per LSP eseguire (in normal mode): `:LspInstall `.
Una volta installato il linguaggio creare nella cartella language/ un file con "linguaggio.lua", creare la configurazione, aggiungere il nome del file creato nella tabella "languages" contenuta nel file lspconfig.lua, la configurazione farà il resto.

## Keymaps

In questa configurazione sono stati creati dei keymaps per velocizzare il richiamo delle funzioni, in seguito troverai una tabella con: keymaps | descrizione.

leader = spazio

| Keymaps | Descrizione |
| :---------- | :---------------------------------------: |
| leader + mp | Formatta il file |
| leader + th | Apre il theme switcher di themery |
| Ctrl + n | Apre il file system di neotree a sinistra |
| Alt + n | Chiude il file system di neotree |
| Ctrl + p | Apre il trova file di telescope |
| Ctrl + fg | Apre il live grep di telescope |
| Ctrl + f | Apre il trova parole di telescope |
| Ctrl + f | Apre il trova parole di telescope |
| Ctrl + a | Seleziona il tutto file |
| Ctrl + c | Copia del testo selezionato |
| Ctrl + v | Incolla del testo selezionato |
| Ctrl + t | Apre il terminale |
| Alt + Up | Sposta una riga in su (freccia up) |
| Alt + down | Sposta una riga in basso (freccia bassa) |
| leader + ca | Apre il 'code action' di LSP |

SPECIALI PER LSP

per queste bisogna trovarsi sopra il nome di una funzione.

| Keymaps | Descrizione |
| :------ | :----------------------: |
| gD | Vai alla dichiarazione |
| gd | Vai alla definizione |
| gi | Vai alla implementazione |