mirror of
https://github.com/fred-drake/neovim.git
synced 2026-06-05 14:59:28 -05:00
Added IaC support
This commit is contained in:
@@ -28,6 +28,7 @@ The default configuration performs editing without settings for any particular l
|
|||||||
- Go `nix run github:fred-drake/neovim#golang`
|
- Go `nix run github:fred-drake/neovim#golang`
|
||||||
- Python `nix run github:fred-drake/neovim#python`
|
- Python `nix run github:fred-drake/neovim#python`
|
||||||
- Javascript `nix run github:fred-drake/neovim#javascript`
|
- Javascript `nix run github:fred-drake/neovim#javascript`
|
||||||
|
- Infrastructure as Code `nix run github:fred-drake/neovim#ia
|
||||||
|
|
||||||
### Install Multiple Configurations
|
### Install Multiple Configurations
|
||||||
|
|
||||||
@@ -65,8 +66,8 @@ And add it to your home-manager imports:
|
|||||||
| YAML | yamlfmt | yamllint, yamlls | | default |
|
| YAML | yamlfmt | yamllint, yamlls | | default |
|
||||||
| CSS | prettier | | | default |
|
| CSS | prettier | | | default |
|
||||||
| HTML | prettier | | | default |
|
| HTML | prettier | | | default |
|
||||||
| Javascript | prettier | | | default |
|
| Javascript | prettier | | | javascript |
|
||||||
| Typescript | prettier | | | default |
|
| Typescript | prettier | | | javascript |
|
||||||
| JSON | prettier | jsonls | | default |
|
| JSON | prettier | jsonls | | default |
|
||||||
| Markdown | prettier | marksman | | default |
|
| Markdown | prettier | marksman | | default |
|
||||||
| Ruby | rubyfmt | | | default |
|
| Ruby | rubyfmt | | | default |
|
||||||
@@ -77,3 +78,8 @@ And add it to your home-manager imports:
|
|||||||
| Python | black, isort | flake8, jedi, pylint, rope, mccabe | dap-python | python |
|
| Python | black, isort | flake8, jedi, pylint, rope, mccabe | dap-python | python |
|
||||||
| Rust | rustfmt | clippy | lldb | rust |
|
| Rust | rustfmt | clippy | lldb | rust |
|
||||||
| Node | prettier | tsserver | vscode-js-debug | javascript |
|
| Node | prettier | tsserver | vscode-js-debug | javascript |
|
||||||
|
| Ansible | yamlfmt | ansiblels | | iac |
|
||||||
|
| Terraform | tofu_fmt | terraformls | | iac |
|
||||||
|
| Nginx | | nginx-language-server | | iac |
|
||||||
|
| Helm | | helm-ls | | iac |
|
||||||
|
| Dockerfile | | dockerls | | iac |
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
let
|
||||||
|
# Read all files in the current directory
|
||||||
|
files = builtins.readDir ./.;
|
||||||
|
|
||||||
|
# Filter out default.nix and non-.nix files
|
||||||
|
nixFiles = builtins.filter
|
||||||
|
(name: name != "default.nix" && builtins.match ".*\\.nix" name != null)
|
||||||
|
(builtins.attrNames files);
|
||||||
|
|
||||||
|
# Create a list of import statements
|
||||||
|
imports = map (name: ./. + "/${name}") nixFiles;
|
||||||
|
in {
|
||||||
|
# Import all configuration modules automatically
|
||||||
|
imports = imports;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
plugins = {
|
||||||
|
conform-nvim = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
formatters_by_ft = {
|
||||||
|
terraform = ["tofu_fmt"];
|
||||||
|
tf = ["tofu_fmt"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
lsp.servers = {
|
||||||
|
ansiblels.enable = true;
|
||||||
|
dockerls.enable = true;
|
||||||
|
helm-ls.enable = true;
|
||||||
|
nginx-language-server.enable = true;
|
||||||
|
terraformls.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
extraPlugins = [
|
||||||
|
# Set ansible.yaml files
|
||||||
|
(pkgs.vimUtils.buildVimPlugin {
|
||||||
|
name = "nvim-ansible";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "mfussenegger";
|
||||||
|
repo = "nvim-ansible";
|
||||||
|
rev = "9c3b4a771b8c8d7b4f2171466464d978cb3846f7";
|
||||||
|
hash = "sha256-N1yOL77WpP66A2zrKxi7IOO5uRzAaeGa0Y/yWaIFiws=";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -89,6 +89,17 @@
|
|||||||
};
|
};
|
||||||
extraSpecialArgs = {};
|
extraSpecialArgs = {};
|
||||||
};
|
};
|
||||||
|
iacNixvimModule = {
|
||||||
|
inherit pkgs;
|
||||||
|
module = {pkgs, ...}: {
|
||||||
|
imports = [
|
||||||
|
./config
|
||||||
|
./config/iac
|
||||||
|
];
|
||||||
|
extraPackages = with pkgs; [sops ansible-lint];
|
||||||
|
};
|
||||||
|
extraSpecialArgs = {};
|
||||||
|
};
|
||||||
pkgs = import inputs.nixpkgs {
|
pkgs = import inputs.nixpkgs {
|
||||||
inherit system overlays;
|
inherit system overlays;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
@@ -99,6 +110,7 @@
|
|||||||
goNvim = nixvim'.makeNixvimWithModule goNixvimModule;
|
goNvim = nixvim'.makeNixvimWithModule goNixvimModule;
|
||||||
pythonNvim = nixvim'.makeNixvimWithModule pythonNixvimModule;
|
pythonNvim = nixvim'.makeNixvimWithModule pythonNixvimModule;
|
||||||
javascriptNvim = nixvim'.makeNixvimWithModule javascriptNixvimModule;
|
javascriptNvim = nixvim'.makeNixvimWithModule javascriptNixvimModule;
|
||||||
|
iacNvim = nixvim'.makeNixvimWithModule iacNixvimModule;
|
||||||
in {
|
in {
|
||||||
checks = {
|
checks = {
|
||||||
# Run `nix flake check .` to verify that your config is not broken
|
# Run `nix flake check .` to verify that your config is not broken
|
||||||
@@ -117,6 +129,8 @@
|
|||||||
python = pythonNvim;
|
python = pythonNvim;
|
||||||
# Lets you run `nix run .#javascript` to start nixvim with JS/TS configuration
|
# Lets you run `nix run .#javascript` to start nixvim with JS/TS configuration
|
||||||
javascript = javascriptNvim;
|
javascript = javascriptNvim;
|
||||||
|
# Lets you run `nix run .#javascript` to start nixvim with IaC configuration
|
||||||
|
iac = iacNvim;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user