Compare commits
4 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
327f924150 | ||
![]() |
79b5bcbdd2 | ||
![]() |
b0009ef3f1 | ||
![]() |
650dc70f39 |
11 changed files with 90 additions and 154 deletions
|
@ -64,7 +64,7 @@
|
||||||
__raw = ''
|
__raw = ''
|
||||||
function()
|
function()
|
||||||
vim.cmd([[
|
vim.cmd([[
|
||||||
if &ft =~ 'javascript\|html\|jade\|json\|css\|less\|php\|python\|sh\|c\|cpp\|markdown\|yaml\|vim\|nix\|graphql\|java'
|
if &ft =~ 'javascript\|html\|jade\|json\|css\|less\|php\|python\|sh\|c\|cpp\|markdown\|yaml\|vim\|nix|graphql'
|
||||||
:%s/\s\+$//e
|
:%s/\s\+$//e
|
||||||
elseif expand('%:t') =~ '\.gltf$' || expand('%:t') =~ '\.glsl$'
|
elseif expand('%:t') =~ '\.gltf$' || expand('%:t') =~ '\.glsl$'
|
||||||
:%s/\s\+$//e
|
:%s/\s\+$//e
|
||||||
|
|
75
flake.lock
generated
75
flake.lock
generated
|
@ -8,11 +8,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743550720,
|
"lastModified": 1741352980,
|
||||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -39,6 +39,24 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ixx": {
|
"ixx": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": [
|
"flake-utils": [
|
||||||
|
@ -53,27 +71,43 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748294338,
|
"lastModified": 1729958008,
|
||||||
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
|
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
|
||||||
"owner": "NuschtOS",
|
"owner": "NuschtOS",
|
||||||
"repo": "ixx",
|
"repo": "ixx",
|
||||||
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
|
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NuschtOS",
|
"owner": "NuschtOS",
|
||||||
"ref": "v0.0.8",
|
"ref": "v0.0.6",
|
||||||
"repo": "ixx",
|
"repo": "ixx",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748406211,
|
"lastModified": 1742422364,
|
||||||
"narHash": "sha256-B3BsCRbc+x/d0WiG1f+qfSLUy+oiIfih54kalWBi+/M=",
|
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "3d1f29646e4b57ed468d60f9d286cde23a8d1707",
|
"rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1742456341,
|
||||||
|
"narHash": "sha256-yvdnTnROddjHxoQqrakUQWDZSzVchczfsuuMOxg476c=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "7344a3b78128f7b1765dba89060b015fb75431a7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -86,16 +120,15 @@
|
||||||
"nixvim": {
|
"nixvim": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nuschtosSearch": "nuschtosSearch",
|
"nuschtosSearch": "nuschtosSearch"
|
||||||
"systems": "systems_2"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748521000,
|
"lastModified": 1742559284,
|
||||||
"narHash": "sha256-EnXH5PIrZBoe8U09hPQr2kOuPTZSqAJy78DqUVLmWXg=",
|
"narHash": "sha256-PSSjCCqpJPkCagkkdLODBVVonGxgwU5dN2CYlFPNVNw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "a9e45072d82374dd3f0d971795e7d7f99e5bc6c2",
|
"rev": "c980271267ef146a6c30394c611a97e077471cf2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -106,7 +139,7 @@
|
||||||
},
|
},
|
||||||
"nuschtosSearch": {
|
"nuschtosSearch": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils_2",
|
||||||
"ixx": "ixx",
|
"ixx": "ixx",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixvim",
|
"nixvim",
|
||||||
|
@ -114,11 +147,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748298102,
|
"lastModified": 1741886583,
|
||||||
"narHash": "sha256-PP11GVwUt7F4ZZi5A5+99isuq39C59CKc5u5yVisU/U=",
|
"narHash": "sha256-sScfYKtxp3CYv5fJcHQDvQjqBL+tPNQqS9yf9Putd+s=",
|
||||||
"owner": "NuschtOS",
|
"owner": "NuschtOS",
|
||||||
"repo": "search",
|
"repo": "search",
|
||||||
"rev": "f8a1c221afb8b4c642ed11ac5ee6746b0fe1d32f",
|
"rev": "2974bc5fa3441a319fba943f3ca41f7dcd1a1467",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -129,6 +162,8 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
"nixvim": "nixvim"
|
"nixvim": "nixvim"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
22
flake.nix
22
flake.nix
|
@ -2,16 +2,30 @@
|
||||||
description = "Opinionated Nixvim config as a flake";
|
description = "Opinionated Nixvim config as a flake";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixvim.url = "github:nix-community/nixvim";
|
## nixvim uses it's own version, so this is only
|
||||||
|
## for explicitly installed packages and non nixvim config
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
|
nixvim = {
|
||||||
|
url = "github:nix-community/nixvim";
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# outputs = { self, nixpkgs, ... } @ inputs:
|
outputs = { self, nixpkgs, ... } @ inputs:
|
||||||
outputs = { self, ... } @ inputs:
|
|
||||||
{
|
{
|
||||||
nixosModules = rec {
|
nixosModules = rec {
|
||||||
default = import ./default.nix {
|
nixvim-config = { config, ... }:
|
||||||
|
let
|
||||||
|
# Get system from the importing module's context
|
||||||
|
system = nixpkgs.lib.systems.elaborate config.nixpkgs.hostPlatform;
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system.system};
|
||||||
|
in
|
||||||
|
import ./default.nix {
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
|
inherit pkgs;
|
||||||
};
|
};
|
||||||
|
default = nixvim-config;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,13 +12,7 @@
|
||||||
enable-startify-cowsay = lib.mkOption {
|
enable-startify-cowsay = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Enable startify cowsay";
|
description = "Enable startify";
|
||||||
};
|
|
||||||
|
|
||||||
startify-header = lib.mkOption {
|
|
||||||
type = lib.types.nullOr (lib.types.listOf lib.types.str);
|
|
||||||
default = null;
|
|
||||||
description = "Startify text/ascii image, if cowsay disabled";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
programs.nixvim = {
|
programs.nixvim = {
|
||||||
enable = config.nixvim-config.enable;
|
enable = config.nixvim-config.enable;
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true; # For claude-code
|
|
||||||
|
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
|
|
||||||
globals = {
|
globals = {
|
||||||
|
@ -56,6 +54,8 @@
|
||||||
|
|
||||||
winaltkeys = "no"; # Disable ALT keys for menu
|
winaltkeys = "no"; # Disable ALT keys for menu
|
||||||
|
|
||||||
|
autoindent = true;
|
||||||
|
smartindent = true;
|
||||||
colorcolumn = "121";
|
colorcolumn = "121";
|
||||||
|
|
||||||
laststatus = 3;
|
laststatus = 3;
|
||||||
|
@ -81,8 +81,6 @@
|
||||||
expandtab = true; # Insert spaces when entering <Tab>
|
expandtab = true; # Insert spaces when entering <Tab>
|
||||||
softtabstop = 4; # Number of spaces that a <Tab> counts for while performing editing operations, like inserting a <Tab> or using <BS>. It "feels" like a tab though
|
softtabstop = 4; # Number of spaces that a <Tab> counts for while performing editing operations, like inserting a <Tab> or using <BS>. It "feels" like a tab though
|
||||||
ai = true; # auto indent
|
ai = true; # auto indent
|
||||||
autoindent = true;
|
|
||||||
smartindent = false;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
## ------------------------------------------------
|
## ------------------------------------------------
|
||||||
|
|
|
@ -130,39 +130,5 @@
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nvim-tree = {
|
|
||||||
# Add "ga" keybinding to add to Avante context
|
|
||||||
onAttach.__raw = ''
|
|
||||||
function(bufnr)
|
|
||||||
local api = require 'nvim-tree.api'
|
|
||||||
api.config.mappings.default_on_attach(bufnr)
|
|
||||||
|
|
||||||
local add_file_to_avante_ctx = function()
|
|
||||||
local sidebar = require('avante').get()
|
|
||||||
|
|
||||||
if not (sidebar and sidebar:is_open()) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local node = api.tree.get_node_under_cursor()
|
|
||||||
|
|
||||||
if not (node and node.type == 'file') then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
sidebar.file_selector:add_selected_file(node.absolute_path)
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.keymap.set('n', 'ga', add_file_to_avante_ctx, {
|
|
||||||
desc = 'add to Avante context',
|
|
||||||
buffer = bufnr,
|
|
||||||
noremap = true,
|
|
||||||
silent = true,
|
|
||||||
nowait = true,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
} else {};
|
} else {};
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
./dap.nix
|
./dap.nix
|
||||||
./diffview.nix
|
./diffview.nix
|
||||||
./fzf-lua.nix
|
./fzf-lua.nix
|
||||||
./gitsigns.nix
|
|
||||||
./indent-blankline.nix
|
./indent-blankline.nix
|
||||||
./lazydev.nix
|
./lazydev.nix
|
||||||
./lsp.nix
|
./lsp.nix
|
||||||
|
@ -27,18 +26,16 @@
|
||||||
./startify.nix
|
./startify.nix
|
||||||
./telescope.nix
|
./telescope.nix
|
||||||
./treesitter.nix
|
./treesitter.nix
|
||||||
|
./vim-signify.nix
|
||||||
## Currently using gitsigns
|
|
||||||
# ./vim-signify.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.nixvim = {
|
programs.nixvim = {
|
||||||
plugins = {
|
plugins = {
|
||||||
claude-code.enable = true;
|
|
||||||
comment.enable = true;
|
comment.enable = true;
|
||||||
## needed by avante. already archived, so may need to migrate to snacks
|
## needed by avante. already archived, so may need to migrate to snacks
|
||||||
# dressing.enable = true;
|
# dressing.enable = true;
|
||||||
fugitive.enable = true;
|
fugitive.enable = true;
|
||||||
|
gitsigns.enable = true;
|
||||||
lightline.enable = false;
|
lightline.enable = false;
|
||||||
lualine.enable = true;
|
lualine.enable = true;
|
||||||
nix.enable = true;
|
nix.enable = true;
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
programs.nixvim = {
|
|
||||||
extraConfigLua = ''
|
|
||||||
local function get_base_branch()
|
|
||||||
-- Try to get the default branch from git config
|
|
||||||
local default_branch_cmd = "git config --get init.defaultbranch || " ..
|
|
||||||
"git symbolic-ref refs/remotes/origin/HEAD | sed 's!refs/remotes/origin/!!'"
|
|
||||||
local default_branch = vim.fn.system(default_branch_cmd):gsub("%s+", "")
|
|
||||||
|
|
||||||
-- If default branch is empty or fails, fall back to common defaults
|
|
||||||
if not default_branch or default_branch == "" then
|
|
||||||
local common_defaults = {"main", "master", "develop", "development"}
|
|
||||||
for _, branch in ipairs(common_defaults) do
|
|
||||||
local branch_exists = vim.fn.system(string.format("git branch --list %s", branch)):match("%s*" .. branch .. "%s*")
|
|
||||||
if branch_exists and branch_exists ~= "" then
|
|
||||||
default_branch = branch
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- If still no default branch, use current branch
|
|
||||||
if not default_branch or default_branch == "" then
|
|
||||||
default_branch = vim.fn.system("git rev-parse --abbrev-ref HEAD"):gsub("%s+", "")
|
|
||||||
end
|
|
||||||
|
|
||||||
return default_branch
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
plugins.gitsigns = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
autoGroups = {
|
|
||||||
DynamicGitsignsBase = {
|
|
||||||
clear = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
autoCmd = [
|
|
||||||
{
|
|
||||||
event = [ "BufEnter" "DirChanged" ];
|
|
||||||
group = "DynamicGitsignsBase";
|
|
||||||
callback.__raw = ''
|
|
||||||
function()
|
|
||||||
local ok, gs = pcall(require, 'gitsigns')
|
|
||||||
if not ok then return end
|
|
||||||
|
|
||||||
local new_base = get_base_branch()
|
|
||||||
|
|
||||||
-- Use change_base command if available
|
|
||||||
pcall(gs.change_base, new_base)
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -122,7 +122,7 @@
|
||||||
# custom_elements_ls.enable = true;
|
# custom_elements_ls.enable = true;
|
||||||
denols = {
|
denols = {
|
||||||
enable = true;
|
enable = true;
|
||||||
rootMarkers = [ "require('lspconfig').util.root_pattern('deno.json', 'deno.jsonc')" ];
|
rootDir = "require('lspconfig').util.root_pattern('deno.json', 'deno.jsonc')";
|
||||||
};
|
};
|
||||||
dockerls.enable = true; # Docker
|
dockerls.enable = true; # Docker
|
||||||
eslint.enable = true;
|
eslint.enable = true;
|
||||||
|
@ -156,7 +156,7 @@
|
||||||
tailwindcss.enable = true;
|
tailwindcss.enable = true;
|
||||||
ts_ls = {
|
ts_ls = {
|
||||||
enable = true;
|
enable = true;
|
||||||
rootMarkers = [ "require('lspconfig').util.root_pattern('package.json')" ];
|
rootDir = "require('lspconfig').util.root_pattern('package.json')";
|
||||||
settings = {
|
settings = {
|
||||||
single_file_support = false;
|
single_file_support = false;
|
||||||
};
|
};
|
||||||
|
@ -164,9 +164,5 @@
|
||||||
yamlls.enable = true; # YAML
|
yamlls.enable = true; # YAML
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
eslint
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +1,16 @@
|
||||||
{ config, lib, ... }:
|
{ config, ... }:
|
||||||
let
|
|
||||||
header-space = " ";
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
programs.nixvim = {
|
programs.nixvim = {
|
||||||
plugins.startify = {
|
plugins.startify = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
custom_header = if config.nixvim-config.enable-startify-cowsay then null
|
custom_header = if config.nixvim-config.enable-startify-cowsay then null else [
|
||||||
else if config.nixvim-config.startify-header != null
|
''. _______ ____ ____.___ _____''
|
||||||
then config.nixvim-config.startify-header else [
|
''. \ \ ____ ___\ \ / /| | / \''
|
||||||
''${header-space} _______ ____ ____.___ _____''
|
''. / | \_/ __ \/ _ \ Y / | |/ \ / \''
|
||||||
''${header-space} \ \ ____ ___\ \ / /| | / \''
|
''. / | \ ___( <_> ) / | / Y \''
|
||||||
''${header-space} / | \_/ __ \/ _ \ Y / | |/ \ / \''
|
''. \____|__ /\___ >____/ \___/ |___\____|__ /''
|
||||||
''${header-space}/ | \ ___( <_> ) / | / Y \''
|
''. \/ \/ \/''
|
||||||
''${header-space}\____|__ /\___ >____/ \___/ |___\____|__ /''
|
|
||||||
''${header-space} \/ \/ \/''
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
indent = {
|
indent = {
|
||||||
enable = false;
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue