neovim-flake/docs/languages.adoc

72 lines
2.0 KiB
Plaintext

[[ch-languages]]
== Language Support
Language specific support combines some combination of language specific plugins, `treesitter` support, `nvim-lspconfig` langauge servers, and `null-ls` integration. This gets you capabilities ranging from autocompletion to formatting to diagnostics. The following languages have support beyond just `treesitter` highlighting.
[[sec-languages-rust]]
=== Rust
*LSP Server*: https://github.com/rust-analyzer/rust-analyzer[rust-analyzer]
*Formatting*: Built into LSP, uses https://github.com/rust-lang/rustfmt[rustfmt]
*Plugins*: See <<sec-plugins-rust,here>>
[[sec-languages-nix]]
=== Nix
*LSP Server*: Choice between https://github.com/oxalica/nil[nil] and https://github.com/nix-community/rnix-lsp[rnix-lsp]
*Formatting*: Choice between https://github.com/kamadorueda/alejandra[alejandra] and https://github.com/nix-community/nixpkgs-fmt[nixpkgs-fmt]
[[sec-languages-sql]]
=== SQL
*LSP Server*: https://github.com/lighttiger2505/sqls[sqls]
*Formatting*: Disabled LSP formatting, instead using https://github.com/sqlfluff/sqlfluff[sqlfluff]
*Linting*: https://github.com/sqlfluff/sqlfluff[sqlfluff]
*Plugins*: See <<sec-plugins-sql,here>>
[[sec-languages-clang]]
=== C/C++
*LSP Server*: https://github.com/MaskRay/ccls[ccls]
*Formatting*: Built into language server
[[sec-languages-typescript]]
=== Typescript
*LSP Server*: https://github.com/typescript-language-server/typescript-language-server[typescript-language-server]
*Formatting*: Disabled LSP formatting, instead using https://github.com/prettier/prettier[prettier]
*Linting*: https://github.com/prettier/prettier[eslint]
[[sec-languages-python]]
=== Python
*LSP Server*: https://github.com/microsoft/pyright[pyright]
*Formatting*: https://github.com/psf/black[black]
[[sec-languages-zig]]
=== Zig
*LSP Server*: https://github.com/zigtools/zls[zls]
*Formatting*: Built into LSP, uses `zig fmt`.
[[sec-languages-markdown]]
=== Markdown
*Plugins*: See <<sec-plugins-markdown,here>>
[[sec-languages-html]]
=== HTML
*Plugins*: See <<sec-plugins-html,here>>