Compare commits
4 commits
16f98ffe58
...
2f48251e91
Author | SHA1 | Date | |
---|---|---|---|
♥ Minnie ♥ | 2f48251e91 | ||
♥ Minnie ♥ | fdbc21f043 | ||
♥ Minnie ♥ | 340017ed29 | ||
♥ Minnie ♥ | 025fbf87a7 |
|
@ -21,6 +21,7 @@
|
|||
|
||||
# UI plugins
|
||||
./plugins/ui/lualine.nix
|
||||
./plugins/ui/web-devicons.nix
|
||||
|
||||
# LSP and formatting
|
||||
./plugins/lsp/conform.nix
|
||||
|
@ -32,6 +33,7 @@
|
|||
./plugins/git/lazygit.nix
|
||||
|
||||
# Utils
|
||||
./plugins/utils/codecompanion.nix
|
||||
./plugins/utils/markdown-preview.nix
|
||||
./plugins/utils/telescope.nix
|
||||
./plugins/utils/whichkey.nix
|
||||
|
|
|
@ -18,16 +18,15 @@
|
|||
'';
|
||||
# cmp mappings declaration
|
||||
mapping = {
|
||||
# Select next/previous item.
|
||||
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
|
||||
# Scroll through documentation.
|
||||
"<C-s>" = "cmp.mapping.scroll_docs(-4)";
|
||||
"<C-t>" = "cmp.mapping.scroll_docs(4)";
|
||||
# Confirm selection.
|
||||
"<CR>" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })";
|
||||
# Exit completion.
|
||||
"<C-e>" = "cmp.mapping.abort()";
|
||||
"<C-Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||
"<C-e>" = "cmp.mapping.select_next_item()";
|
||||
"<C-n>" = "cmp.mapping.select_prev_item()";
|
||||
"<C-esc>" = "cmp.mapping.abort()";
|
||||
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
|
||||
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
||||
"<C-Space>" = "cmp.mapping.complete()";
|
||||
"<C-CR>" = "cmp.mapping.confirm({ select = true })";
|
||||
"<S-CR>" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })";
|
||||
};
|
||||
};
|
||||
# Scans the sources array and enable the corresponding plugins if they are known to nixvim.
|
||||
|
|
|
@ -2,20 +2,23 @@
|
|||
plugins.conform-nvim = {
|
||||
enable = true;
|
||||
|
||||
# Run the formatter on file save.
|
||||
formatOnSave = {
|
||||
lspFallback = true;
|
||||
timeoutMs = 500;
|
||||
};
|
||||
# Receive notificaton when a formatter errors.
|
||||
notifyOnError = true;
|
||||
settings = {
|
||||
# Run the formatter on file save.
|
||||
format_on_save = {
|
||||
lspFallback = true;
|
||||
timeoutMs = 500;
|
||||
};
|
||||
|
||||
# Map of filetype to formatters.
|
||||
formattersByFt = {
|
||||
c = ["clang-format"];
|
||||
haskell = ["stylish-haskell"];
|
||||
lua = ["stylua"];
|
||||
nix = ["alejandra"];
|
||||
# Map of filetype to formatters.
|
||||
formattersByFt = {
|
||||
c = ["clang-format"];
|
||||
haskell = ["stylish-haskell"];
|
||||
lua = ["stylua"];
|
||||
nix = ["alejandra"];
|
||||
};
|
||||
|
||||
# Receive notificaton when a formatter errors.
|
||||
notifyOnError = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -9,19 +9,20 @@
|
|||
enable = true;
|
||||
};
|
||||
# Clojure
|
||||
clojure-lsp = {
|
||||
clojure_lsp = {
|
||||
enable = true;
|
||||
};
|
||||
# Haskell
|
||||
hls = {
|
||||
enable = true;
|
||||
installGhc = true;
|
||||
};
|
||||
# Lua
|
||||
lua-ls = {
|
||||
lua_ls = {
|
||||
enable = true;
|
||||
};
|
||||
# Nix
|
||||
nil-ls = {
|
||||
nil_ls = {
|
||||
enable = true;
|
||||
};
|
||||
# YAML
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{...}: {
|
||||
plugins.luasnip = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
settings = {
|
||||
enable_autosnippets = true;
|
||||
store_selection_keys = "<Tab>";
|
||||
};
|
||||
|
|
|
@ -1,67 +1,66 @@
|
|||
{...}: {
|
||||
plugins.lualine = {
|
||||
enable = true;
|
||||
globalstatus = true;
|
||||
theme = "gruvbox-material";
|
||||
|
||||
# Load our extensions
|
||||
extensions = [
|
||||
"neo-tree"
|
||||
];
|
||||
settings = {
|
||||
options = {
|
||||
globalstatus = true;
|
||||
theme = "gruvbox-material";
|
||||
|
||||
# Icons for our separators
|
||||
componentSeparators = {
|
||||
left = "";
|
||||
right = "";
|
||||
};
|
||||
sectionSeparators = {
|
||||
left = "";
|
||||
right = "";
|
||||
};
|
||||
# Icons for our separators
|
||||
componentSeparators = {
|
||||
left = "";
|
||||
right = "";
|
||||
};
|
||||
|
||||
# Display components in tabline
|
||||
tabline = {
|
||||
lualine_a = [{name = "buffers";}];
|
||||
lualine_x = [{name = "hostname";}];
|
||||
lualine_z = [{name = "encoding";}];
|
||||
};
|
||||
sectionSeparators = {
|
||||
left = "";
|
||||
right = "";
|
||||
};
|
||||
};
|
||||
|
||||
# Lualine has sections as shown below
|
||||
# +-------------------------------------------------+
|
||||
# | A | B | C X | Y | Z |
|
||||
# +-------------------------------------------------+
|
||||
sections = {
|
||||
# Section A
|
||||
lualine_a = [{name = "mode";}];
|
||||
# Display components in tabline
|
||||
tabline = {
|
||||
lualine_a = [{__unkeyed-1 = "buffers";}];
|
||||
lualine_x = [{__unkeyed-1 = "hostname";}];
|
||||
lualine_z = [{__unkeyed-1 = "encoding";}];
|
||||
};
|
||||
|
||||
# Section B
|
||||
lualine_b = [
|
||||
# Git branch
|
||||
{
|
||||
name = "branch";
|
||||
icon = "";
|
||||
}
|
||||
# Lualine has sections as shown below
|
||||
# +-------------------------------------------------+
|
||||
# | A | B | C X | Y | Z |
|
||||
# +-------------------------------------------------+
|
||||
sections = {
|
||||
# Section A
|
||||
lualine_a = [{__unkeyed-1 = "mode";}];
|
||||
|
||||
# Git diff status
|
||||
{
|
||||
name = "diff";
|
||||
extraConfig.symbols = {
|
||||
added = "+";
|
||||
modified = "~";
|
||||
removed = "-";
|
||||
};
|
||||
}
|
||||
];
|
||||
# Section B
|
||||
lualine_b = [
|
||||
# Git branch
|
||||
{
|
||||
__unkeyed-1 = "branch";
|
||||
icon = "";
|
||||
}
|
||||
|
||||
# Section C
|
||||
lualine_c = [{name = "filename";}];
|
||||
# Git diff status
|
||||
{
|
||||
__unkeyed-1 = "diff";
|
||||
symbols = {
|
||||
added = "+";
|
||||
modified = "~";
|
||||
removed = "-";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
# Section X
|
||||
lualine_x = [
|
||||
# Diagnostic count from nvim_lsp
|
||||
{
|
||||
name = "diagnostics";
|
||||
extraConfig = {
|
||||
# Section C
|
||||
lualine_c = [{__unkeyed-1 = "filename";}];
|
||||
|
||||
# Section X
|
||||
lualine_x = [
|
||||
# Diagnostic count from nvim_lsp
|
||||
{
|
||||
__unkeyed-1 = "diagnostics";
|
||||
sources = ["nvim_lsp"];
|
||||
symbols = {
|
||||
error = "error:";
|
||||
|
@ -69,15 +68,20 @@
|
|||
info = "info:";
|
||||
hint = "hint:";
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
# Section Y
|
||||
lualine_y = [{__unkeyed-1 = "progress";}];
|
||||
|
||||
# Section Z
|
||||
lualine_z = [{__unkeyed-1 = "location";}];
|
||||
};
|
||||
|
||||
# Load our extensions
|
||||
extensions = [
|
||||
"neo-tree"
|
||||
];
|
||||
|
||||
# Section Y
|
||||
lualine_y = [{name = "progress";}];
|
||||
|
||||
# Section Z
|
||||
lualine_z = [{name = "location";}];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
5
config/plugins/ui/web-devicons.nix
Normal file
5
config/plugins/ui/web-devicons.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{...}: {
|
||||
plugins.web-devicons = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
61
config/plugins/utils/codecompanion.nix
Normal file
61
config/plugins/utils/codecompanion.nix
Normal file
|
@ -0,0 +1,61 @@
|
|||
{...}: {
|
||||
plugins.codecompanion = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
adapters = {
|
||||
ollama = {
|
||||
__raw = ''
|
||||
function()
|
||||
return require('codecompanion.adapters').extend('ollama', {
|
||||
env = {
|
||||
url = "http://127.0.0.1:11434",
|
||||
},
|
||||
schema = {
|
||||
model = {
|
||||
default = 'deepseek-coder-v2:latest',
|
||||
},
|
||||
num_ctx = {
|
||||
default = 4096,
|
||||
},
|
||||
num_predict = {
|
||||
default = -1,
|
||||
},
|
||||
},
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
opts = {
|
||||
log_level = "TRACE";
|
||||
send_code = true;
|
||||
use_default_actions = true;
|
||||
use_default_prompts = true;
|
||||
};
|
||||
strategies = {
|
||||
agent = {
|
||||
adapter = "ollama";
|
||||
};
|
||||
chat = {
|
||||
adapter = "ollama";
|
||||
};
|
||||
inline = {
|
||||
adapter = "ollama";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
keymaps = [
|
||||
{
|
||||
mode = ["n" "v"];
|
||||
key = "<leader>tc";
|
||||
action = "<cmd>CodeCompanionChat Toggle<cr>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Toggle CodeCompanion";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
109
flake.lock
109
flake.lock
|
@ -8,11 +8,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722113426,
|
||||
"narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
|
||||
"lastModified": 1728330715,
|
||||
"narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
|
||||
"rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -40,11 +40,11 @@
|
|||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722555600,
|
||||
"narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=",
|
||||
"lastModified": 1733312601,
|
||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "8471fe90ad337a8074e957b69ca4d0089218391d",
|
||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -61,11 +61,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1719994518,
|
||||
"narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=",
|
||||
"lastModified": 1733312601,
|
||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7",
|
||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -79,11 +79,11 @@
|
|||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -109,11 +109,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1721042469,
|
||||
"narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=",
|
||||
"lastModified": 1734425854,
|
||||
"narHash": "sha256-nzE5UbJ41aPEKf8R2ZFYtLkqPmF7EIUbNEdHMBLg0Ig=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "f451c19376071a90d8c58ab1a953c6e9840527fd",
|
||||
"rev": "0ddd26d0925f618c3a5d85a4fa5eb1e23a09491d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -152,11 +152,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722407237,
|
||||
"narHash": "sha256-wcpVHUc2nBSSgOM7UJSpcRbyus4duREF31xlzHV5T+A=",
|
||||
"lastModified": 1734622215,
|
||||
"narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "58cef3796271aaeabaed98884d4abaab5d9d162d",
|
||||
"rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -165,6 +165,34 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ixx": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"nixvim",
|
||||
"nuschtosSearch",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nuschtosSearch",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729958008,
|
||||
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "ixx",
|
||||
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NuschtOS",
|
||||
"ref": "v0.0.6",
|
||||
"repo": "ixx",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -173,11 +201,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722082646,
|
||||
"narHash": "sha256-od8dBWVP/ngg0cuoyEl/w9D+TCNDj6Kh4tr151Aax7w=",
|
||||
"lastModified": 1733570843,
|
||||
"narHash": "sha256-sQJAxY1TYWD1UyibN/FnN97paTFuwBw3Vp3DNCyKsMk=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "0413754b3cdb879ba14f6e96915e5fdf06c6aab6",
|
||||
"rev": "a35b08d09efda83625bef267eb24347b446c80b8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -188,11 +216,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1722421184,
|
||||
"narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=",
|
||||
"lastModified": 1734424634,
|
||||
"narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58",
|
||||
"rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -204,23 +232,23 @@
|
|||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1722555339,
|
||||
"narHash": "sha256-uFf2QeW7eAHlYXuDktm9c25OxOyCoUOQmh5SZ9amE5Q=",
|
||||
"lastModified": 1733096140,
|
||||
"narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz"
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz"
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1722185531,
|
||||
"narHash": "sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k=",
|
||||
"lastModified": 1734424634,
|
||||
"narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "52ec9ac3b12395ad677e8b62106f0b98c1f8569d",
|
||||
"rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -243,11 +271,11 @@
|
|||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722531900,
|
||||
"narHash": "sha256-COtoy+Y/j2QLX818mRI7BweRJOltf0bndxbps/eoH0s=",
|
||||
"lastModified": 1734798432,
|
||||
"narHash": "sha256-JVU+WjrRZUJnUKQ/iXP9O8eQ0L3YkqV1DpFMS4kLZog=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "7c39d77b9f1fbcbd8f2a575c4f2948dd54efc5c1",
|
||||
"rev": "6a4b4221c4ebf1140f73f8df769e97f1828d90fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -259,17 +287,18 @@
|
|||
"nuschtosSearch": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"ixx": "ixx",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722144272,
|
||||
"narHash": "sha256-olZbfaEdd+zNPuuyYcYGaRzymA9rOmth8yXOlVm+LUs=",
|
||||
"lastModified": 1733773348,
|
||||
"narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"rev": "16565307c267ec219c2b5d3494ba66df08e7d403",
|
||||
"rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -308,11 +337,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722330636,
|
||||
"narHash": "sha256-uru7JzOa33YlSRwf9sfXpJG+UAV+bnBEYMjrzKrQZFw=",
|
||||
"lastModified": 1734704479,
|
||||
"narHash": "sha256-MMi74+WckoyEWBRcg/oaGRvXC9BVVxDZNRMpL+72wBI=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "768acdb06968e53aa1ee8de207fd955335c754b7",
|
||||
"rev": "65712f5af67234dad91a5a4baee986a8b62dbf8f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
Loading…
Reference in a new issue