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 = ''
|
||||
function()
|
||||
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
|
||||
elseif expand('%:t') =~ '\.gltf$' || expand('%:t') =~ '\.glsl$'
|
||||
:%s/\s\+$//e
|
||||
|
|
75
flake.lock
generated
75
flake.lock
generated
|
@ -8,11 +8,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743550720,
|
||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||
"lastModified": 1741352980,
|
||||
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -39,6 +39,24 @@
|
|||
"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": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
|
@ -53,27 +71,43 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748294338,
|
||||
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
|
||||
"lastModified": 1729958008,
|
||||
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "ixx",
|
||||
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
|
||||
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NuschtOS",
|
||||
"ref": "v0.0.8",
|
||||
"ref": "v0.0.6",
|
||||
"repo": "ixx",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1748406211,
|
||||
"narHash": "sha256-B3BsCRbc+x/d0WiG1f+qfSLUy+oiIfih54kalWBi+/M=",
|
||||
"lastModified": 1742422364,
|
||||
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
|
||||
"owner": "NixOS",
|
||||
"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"
|
||||
},
|
||||
"original": {
|
||||
|
@ -86,16 +120,15 @@
|
|||
"nixvim": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nuschtosSearch": "nuschtosSearch",
|
||||
"systems": "systems_2"
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nuschtosSearch": "nuschtosSearch"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748521000,
|
||||
"narHash": "sha256-EnXH5PIrZBoe8U09hPQr2kOuPTZSqAJy78DqUVLmWXg=",
|
||||
"lastModified": 1742559284,
|
||||
"narHash": "sha256-PSSjCCqpJPkCagkkdLODBVVonGxgwU5dN2CYlFPNVNw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "a9e45072d82374dd3f0d971795e7d7f99e5bc6c2",
|
||||
"rev": "c980271267ef146a6c30394c611a97e077471cf2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -106,7 +139,7 @@
|
|||
},
|
||||
"nuschtosSearch": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"ixx": "ixx",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
|
@ -114,11 +147,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748298102,
|
||||
"narHash": "sha256-PP11GVwUt7F4ZZi5A5+99isuq39C59CKc5u5yVisU/U=",
|
||||
"lastModified": 1741886583,
|
||||
"narHash": "sha256-sScfYKtxp3CYv5fJcHQDvQjqBL+tPNQqS9yf9Putd+s=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"rev": "f8a1c221afb8b4c642ed11ac5ee6746b0fe1d32f",
|
||||
"rev": "2974bc5fa3441a319fba943f3ca41f7dcd1a1467",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -129,6 +162,8 @@
|
|||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixvim": "nixvim"
|
||||
}
|
||||
},
|
||||
|
|
22
flake.nix
22
flake.nix
|
@ -2,16 +2,30 @@
|
|||
description = "Opinionated Nixvim config as a flake";
|
||||
|
||||
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, ... } @ inputs:
|
||||
outputs = { self, nixpkgs, ... } @ inputs:
|
||||
{
|
||||
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 pkgs;
|
||||
};
|
||||
default = nixvim-config;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -12,13 +12,7 @@
|
|||
enable-startify-cowsay = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Enable startify cowsay";
|
||||
};
|
||||
|
||||
startify-header = lib.mkOption {
|
||||
type = lib.types.nullOr (lib.types.listOf lib.types.str);
|
||||
default = null;
|
||||
description = "Startify text/ascii image, if cowsay disabled";
|
||||
description = "Enable startify";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
programs.nixvim = {
|
||||
enable = config.nixvim-config.enable;
|
||||
|
||||
nixpkgs.config.allowUnfree = true; # For claude-code
|
||||
|
||||
defaultEditor = true;
|
||||
|
||||
globals = {
|
||||
|
@ -56,6 +54,8 @@
|
|||
|
||||
winaltkeys = "no"; # Disable ALT keys for menu
|
||||
|
||||
autoindent = true;
|
||||
smartindent = true;
|
||||
colorcolumn = "121";
|
||||
|
||||
laststatus = 3;
|
||||
|
@ -81,8 +81,6 @@
|
|||
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
|
||||
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 {};
|
||||
}
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
./dap.nix
|
||||
./diffview.nix
|
||||
./fzf-lua.nix
|
||||
./gitsigns.nix
|
||||
./indent-blankline.nix
|
||||
./lazydev.nix
|
||||
./lsp.nix
|
||||
|
@ -27,18 +26,16 @@
|
|||
./startify.nix
|
||||
./telescope.nix
|
||||
./treesitter.nix
|
||||
|
||||
## Currently using gitsigns
|
||||
# ./vim-signify.nix
|
||||
./vim-signify.nix
|
||||
];
|
||||
|
||||
programs.nixvim = {
|
||||
plugins = {
|
||||
claude-code.enable = true;
|
||||
comment.enable = true;
|
||||
## needed by avante. already archived, so may need to migrate to snacks
|
||||
# dressing.enable = true;
|
||||
fugitive.enable = true;
|
||||
gitsigns.enable = true;
|
||||
lightline.enable = false;
|
||||
lualine.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;
|
||||
denols = {
|
||||
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
|
||||
eslint.enable = true;
|
||||
|
@ -156,7 +156,7 @@
|
|||
tailwindcss.enable = true;
|
||||
ts_ls = {
|
||||
enable = true;
|
||||
rootMarkers = [ "require('lspconfig').util.root_pattern('package.json')" ];
|
||||
rootDir = "require('lspconfig').util.root_pattern('package.json')";
|
||||
settings = {
|
||||
single_file_support = false;
|
||||
};
|
||||
|
@ -164,9 +164,5 @@
|
|||
yamlls.enable = true; # YAML
|
||||
};
|
||||
};
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
eslint
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,21 +1,16 @@
|
|||
{ config, lib, ... }:
|
||||
let
|
||||
header-space = " ";
|
||||
in
|
||||
{ config, ... }:
|
||||
{
|
||||
programs.nixvim = {
|
||||
plugins.startify = {
|
||||
enable = true;
|
||||
settings = {
|
||||
custom_header = if config.nixvim-config.enable-startify-cowsay then null
|
||||
else if config.nixvim-config.startify-header != null
|
||||
then config.nixvim-config.startify-header else [
|
||||
''${header-space} _______ ____ ____.___ _____''
|
||||
''${header-space} \ \ ____ ___\ \ / /| | / \''
|
||||
''${header-space} / | \_/ __ \/ _ \ Y / | |/ \ / \''
|
||||
''${header-space}/ | \ ___( <_> ) / | / Y \''
|
||||
''${header-space}\____|__ /\___ >____/ \___/ |___\____|__ /''
|
||||
''${header-space} \/ \/ \/''
|
||||
custom_header = if config.nixvim-config.enable-startify-cowsay then null else [
|
||||
''. _______ ____ ____.___ _____''
|
||||
''. \ \ ____ ___\ \ / /| | / \''
|
||||
''. / | \_/ __ \/ _ \ Y / | |/ \ / \''
|
||||
''. / | \ ___( <_> ) / | / Y \''
|
||||
''. \____|__ /\___ >____/ \___/ |___\____|__ /''
|
||||
''. \/ \/ \/''
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
};
|
||||
};
|
||||
indent = {
|
||||
enable = false;
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue