mirror of
https://github.com/softinio/nix-config.git
synced 2025-10-18 11:06:41 -07:00
re-organize nixvim
This commit is contained in:
parent
7584b9ebfc
commit
10e3123b7f
22 changed files with 480 additions and 219 deletions
|
@ -54,7 +54,6 @@
|
|||
|
||||
set -xg TOOLCHAINS swift
|
||||
|
||||
# set -xg DEVELOPER_DIR "/Library/Developer/CommandLineTools"
|
||||
set -xg OPENAI_API_KEY (cat ~/.openai)
|
||||
set -xg ANTHROPIC_API_KEY (cat ~/.anthropic)
|
||||
'';
|
||||
|
@ -80,12 +79,9 @@
|
|||
ghauth = "gh auth login --with-token < ~/.ghauth";
|
||||
gitpurgemain = ''git branch --merged | grep -v "\*" | grep -v "main" | xargs -n 1 git branch -d'';
|
||||
gitpurgemaster = ''git branch --merged | grep -v "\*" | grep -v "master" | xargs -n 1 git branch -d'';
|
||||
giscala = "gitignore scala,vim,java,sbt > .gitignore";
|
||||
gforksync = "git fetch upstream && git merge upstream/master && git push origin master";
|
||||
grep = "grep --color=auto";
|
||||
hg = "kitten hyperlinked-grep";
|
||||
lg = "lazygit";
|
||||
new-sbt = "sbt new scala/scala-seed.g8";
|
||||
nixc = "cd ~/.config/nixpkgs";
|
||||
nixre = "nix build && sudo ./result/activate";
|
||||
nixinfo = "nix-shell -p nix-info --run \"nix-info -m\"";
|
||||
|
@ -93,7 +89,6 @@
|
|||
nixq = "nix-env -qa";
|
||||
nixstorerepair = "nix-store --repair --verify --check-contents";
|
||||
nixupgrade = "nix upgrade-nix";
|
||||
o = "echo (ollama run qwen2.5-coder \"Provide only the MacOS terminal command (without markdown) to: $argv\")";
|
||||
rmxcodederived = "rm -fr ~/Library/Developer/Xcode/DerivedData";
|
||||
v = "nvim";
|
||||
sshhcloud1 = "ssh salar@hcloud1.softinio.net";
|
||||
|
|
163
programs/nixvim/README.md
Normal file
163
programs/nixvim/README.md
Normal file
|
@ -0,0 +1,163 @@
|
|||
# Nixvim Configuration
|
||||
|
||||
This directory contains a modular Neovim configuration managed through [nixvim](https://github.com/nix-community/nixvim).
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
nixvim/
|
||||
├── default.nix # Main entry point
|
||||
├── options.nix # Core Neovim options (line numbers, tabs, etc.)
|
||||
├── keymappings.nix # Global key mappings
|
||||
├── autocommands.nix # Auto commands for various events
|
||||
├── completion.nix # Completion configuration (nvim-cmp)
|
||||
└── plugins/ # Plugin configurations
|
||||
├── default.nix # Plugin imports
|
||||
├── ui.nix # UI enhancements (colorscheme, icons, etc.)
|
||||
├── git.nix # Git integration
|
||||
├── editing.nix # Editing enhancements
|
||||
├── utility.nix # Utility plugins
|
||||
├── ai.nix # AI assistants (Copilot, Avante)
|
||||
├── lsp/ # Language Server Protocol
|
||||
│ ├── default.nix # LSP imports
|
||||
│ ├── servers.nix # Language server configurations
|
||||
│ ├── keymaps.nix # LSP-specific key mappings
|
||||
│ └── formatting.nix # Auto-formatting settings
|
||||
├── avante.nix # Avante AI configuration
|
||||
├── conform.nix # Code formatting
|
||||
├── floaterm.nix # Floating terminal
|
||||
├── lualine.nix # Status line
|
||||
├── neo-tree.nix # File explorer
|
||||
├── telescope.nix # Fuzzy finder
|
||||
└── treesitter.nix # Syntax highlighting
|
||||
```
|
||||
|
||||
## Configuration Categories
|
||||
|
||||
### Core Settings (`options.nix`)
|
||||
- Editor options (line numbers, indentation, etc.)
|
||||
- Update time and performance settings
|
||||
- Clipboard configuration
|
||||
- Leader key mappings
|
||||
|
||||
### Key Mappings (`keymappings.nix`)
|
||||
- Window navigation
|
||||
- Buffer management
|
||||
- Text manipulation
|
||||
- Custom shortcuts
|
||||
|
||||
### Auto Commands (`autocommands.nix`)
|
||||
- FileType-specific settings
|
||||
- Auto-formatting rules
|
||||
- UI behavior modifications
|
||||
|
||||
### Completion (`completion.nix`)
|
||||
- nvim-cmp configuration
|
||||
- Snippet support
|
||||
- LSP integration
|
||||
- Multiple completion sources
|
||||
|
||||
### Plugins
|
||||
|
||||
#### UI Enhancements (`ui.nix`)
|
||||
- **Colorscheme**: Tokyo Night theme with custom background
|
||||
- **Icons**: File type icons via web-devicons
|
||||
- **Visual aids**: Indent guides, color highlighting, markdown preview
|
||||
|
||||
#### Git Integration (`git.nix`)
|
||||
- **Gitsigns**: Shows git changes in the gutter
|
||||
|
||||
#### Editing (`editing.nix`)
|
||||
- **Auto-pairs**: Automatic bracket/quote closing
|
||||
- **Flash**: Enhanced jump/search
|
||||
- **Trim**: Whitespace management
|
||||
- **Image support**: Clipboard image pasting
|
||||
|
||||
#### Utilities (`utility.nix`)
|
||||
- **Oil**: File manager
|
||||
- **Todo-comments**: Highlight TODO/FIXME comments
|
||||
- **Trouble**: Diagnostics list
|
||||
- **Which-key**: Show available keybindings
|
||||
|
||||
#### AI Assistants (`ai.nix`)
|
||||
- **Copilot**: GitHub Copilot integration
|
||||
- **Avante**: Advanced AI assistant
|
||||
|
||||
#### LSP (`lsp/`)
|
||||
- **Language Servers**: Support for 15+ languages
|
||||
- **Key mappings**: Go-to-definition, references, hover docs
|
||||
- **Auto-formatting**: Format on save for all supported languages
|
||||
|
||||
## Adding New Configurations
|
||||
|
||||
### Adding a New Plugin
|
||||
|
||||
1. Create a new file in `plugins/` or add to an existing category file
|
||||
2. Add the import to `plugins/default.nix`
|
||||
3. Configure the plugin following nixvim documentation
|
||||
|
||||
Example:
|
||||
```nix
|
||||
# plugins/my-plugin.nix
|
||||
{ ... }:
|
||||
{
|
||||
programs.nixvim.plugins.my-plugin = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# Plugin-specific settings
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
### Adding a New Language Server
|
||||
|
||||
Edit `plugins/lsp/servers.nix` and add your server configuration:
|
||||
```nix
|
||||
my_language_ls = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# Server-specific settings
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
### Adding Key Mappings
|
||||
|
||||
- **Global mappings**: Add to `keymappings.nix`
|
||||
- **LSP mappings**: Add to `plugins/lsp/keymaps.nix`
|
||||
- **Plugin-specific**: Add to the plugin's configuration file
|
||||
|
||||
## Applying Changes
|
||||
|
||||
After making changes, rebuild your nix configuration:
|
||||
```bash
|
||||
nixre # Alias for darwin-rebuild switch --flake ~/.config/nixpkgs#salarm3max
|
||||
```
|
||||
|
||||
## Performance Tuning
|
||||
|
||||
Key performance settings:
|
||||
- `updatetime`: Controls LSP/diagnostic update speed (currently 100ms)
|
||||
- `performance.debounce`: Completion debounce time (60ms)
|
||||
- `performance.throttle`: Completion throttle time (30ms)
|
||||
|
||||
Adjust these in `options.nix` and `completion.nix` respectively.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### LSP Not Working
|
||||
1. Check if language server is installed: `:LspInfo`
|
||||
2. Verify keymaps are loaded: `:map gd`
|
||||
3. Check for errors: `:messages`
|
||||
|
||||
### Slow Performance
|
||||
1. Increase `updatetime` in `options.nix`
|
||||
2. Adjust completion performance settings in `completion.nix`
|
||||
3. Disable unused language servers in `lsp/servers.nix`
|
||||
|
||||
## Resources
|
||||
|
||||
- [Nixvim Documentation](https://nix-community.github.io/nixvim/)
|
||||
- [Neovim Documentation](https://neovim.io/doc/)
|
||||
- [LSP Specification](https://microsoft.github.io/language-server-protocol/)
|
|
@ -1,106 +0,0 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./avante.nix
|
||||
./conform.nix
|
||||
./floaterm.nix
|
||||
./lsp.nix
|
||||
./lualine.nix
|
||||
./neo-tree.nix
|
||||
./telescope.nix
|
||||
./treesitter.nix
|
||||
];
|
||||
|
||||
# Global plugin configurations can go here
|
||||
programs.nixvim = {
|
||||
colorschemes.tokyonight = {
|
||||
enable = true;
|
||||
settings = {
|
||||
style = "night";
|
||||
on_colors.__raw = "function(colors) colors.bg = \"#000000\" end";
|
||||
};
|
||||
};
|
||||
|
||||
plugins = {
|
||||
# Lazy loading
|
||||
lz-n.enable = true;
|
||||
|
||||
web-devicons.enable = true;
|
||||
|
||||
gitsigns = {
|
||||
enable = true;
|
||||
settings.signs = {
|
||||
add.text = "+";
|
||||
change.text = "~";
|
||||
delete.text = "_";
|
||||
topdelete.text = "‾";
|
||||
changedelete.text = "~";
|
||||
};
|
||||
};
|
||||
|
||||
nvim-autopairs.enable = true;
|
||||
|
||||
colorizer = {
|
||||
enable = true;
|
||||
settings.user_default_options.names = false;
|
||||
};
|
||||
|
||||
copilot-vim.enable = true;
|
||||
|
||||
fidget.enable = true;
|
||||
|
||||
flash.enable = true;
|
||||
|
||||
img-clip = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default = {
|
||||
embed_image_as_base64 = false;
|
||||
prompt_for_file_name = false;
|
||||
drag_and_drop = {
|
||||
insert_mode = true;
|
||||
};
|
||||
use_absolute_path = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
indent-blankline.enable = true;
|
||||
|
||||
markview.enable = true;
|
||||
|
||||
nui.enable = true;
|
||||
|
||||
oil = {
|
||||
enable = true;
|
||||
lazyLoad.settings.cmd = "Oil";
|
||||
};
|
||||
|
||||
snacks.enable = true;
|
||||
|
||||
todo-comments = {
|
||||
enable = true;
|
||||
keymaps.todoTelescope.key = "<leader>t";
|
||||
};
|
||||
|
||||
trim = {
|
||||
enable = true;
|
||||
settings = {
|
||||
highlight = true;
|
||||
ft_blocklist = [
|
||||
"checkhealth"
|
||||
"floaterm"
|
||||
"lspinfo"
|
||||
"neo-tree"
|
||||
"TelescopePrompt"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
trouble.enable = true;
|
||||
typst-preview.enable = true;
|
||||
which-key.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,106 +0,0 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
programs.nixvim = {
|
||||
diagnostic.settings.virtual_text = true;
|
||||
|
||||
lsp = {
|
||||
inlayHints.enable = true;
|
||||
servers = {
|
||||
basedpyright = {
|
||||
enable = true;
|
||||
settings.settings.basedpyright = {
|
||||
analysis = {
|
||||
autoImportCompletions = true;
|
||||
autoSearchPaths = true;
|
||||
inlayHints = {
|
||||
callArgumentNames = true;
|
||||
};
|
||||
diagnosticMode = "openFilesOnly";
|
||||
reportMissingImports = true;
|
||||
reportMissingParameterType = true;
|
||||
reportUnnecessaryComparison = true;
|
||||
reportUnnecessaryContains = true;
|
||||
reportUnusedClass = true;
|
||||
reportUnusedFunction = true;
|
||||
reportUnsedImports = true;
|
||||
reportUnsusedVariables = true;
|
||||
typeCheckingMode = "recommended";
|
||||
useLibraryCodeForTypes = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
bashls.enable = true;
|
||||
html.enable = true;
|
||||
jqls.enable = true;
|
||||
jsonls.enable = true;
|
||||
lua_ls = {
|
||||
enable = true;
|
||||
settings.settings.diagnostics.globals = [ "vim" ];
|
||||
};
|
||||
marksman.enable = true;
|
||||
metals.enable = true;
|
||||
nil_ls.enable = true;
|
||||
nixd.enable = true;
|
||||
rust_analyzer.enable = true;
|
||||
sourcekit = {
|
||||
enable = true;
|
||||
settings = {
|
||||
cmd = [
|
||||
"xcrun"
|
||||
"sourcekit-lsp"
|
||||
];
|
||||
};
|
||||
};
|
||||
tinymist.enable = true;
|
||||
ts_ls.enable = true;
|
||||
yamlls.enable = true;
|
||||
};
|
||||
|
||||
keymaps = [
|
||||
{
|
||||
key = "<leader>k";
|
||||
action.__raw = "function() vim.diagnostic.jump({ count=-1, float=true }) end";
|
||||
}
|
||||
{
|
||||
key = "<leader>j";
|
||||
action.__raw = "function() vim.diagnostic.jump({ count=1, float=true }) end";
|
||||
}
|
||||
{
|
||||
key = "gd";
|
||||
lspBufAction = "definition";
|
||||
}
|
||||
{
|
||||
key = "gD";
|
||||
lspBufAction = "references";
|
||||
}
|
||||
{
|
||||
key = "gt";
|
||||
lspBufAction = "type_definition";
|
||||
}
|
||||
{
|
||||
key = "gi";
|
||||
lspBufAction = "implementation";
|
||||
}
|
||||
{
|
||||
key = "K";
|
||||
lspBufAction = "hover";
|
||||
}
|
||||
{
|
||||
key = "<F2>";
|
||||
lspBufAction = "rename";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
plugins = {
|
||||
lsp-format = {
|
||||
enable = true;
|
||||
lspServersToEnable = "all";
|
||||
};
|
||||
|
||||
# Sane defaults for all servers
|
||||
lspconfig.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
|
@ -6,7 +6,7 @@
|
|||
./completion.nix
|
||||
./keymappings.nix
|
||||
./options.nix
|
||||
./_plugins
|
||||
./plugins
|
||||
];
|
||||
|
||||
programs.nixvim = {
|
||||
|
|
11
programs/nixvim/plugins/ai.nix
Normal file
11
programs/nixvim/plugins/ai.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
# GitHub Copilot
|
||||
copilot-vim.enable = true;
|
||||
|
||||
# Avante AI assistant (imported from separate file)
|
||||
# avante config is in avante.nix
|
||||
};
|
||||
}
|
24
programs/nixvim/plugins/default.nix
Normal file
24
programs/nixvim/plugins/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Core plugin categories
|
||||
./ui.nix
|
||||
./git.nix
|
||||
./editing.nix
|
||||
./utility.nix
|
||||
./ai.nix
|
||||
|
||||
# LSP configuration
|
||||
./lsp
|
||||
|
||||
# Individual plugin configurations
|
||||
./avante.nix
|
||||
./conform.nix
|
||||
./floaterm.nix
|
||||
./lualine.nix
|
||||
./neo-tree.nix
|
||||
./telescope.nix
|
||||
./treesitter.nix
|
||||
];
|
||||
}
|
44
programs/nixvim/plugins/editing.nix
Normal file
44
programs/nixvim/plugins/editing.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
# Auto-close brackets and quotes
|
||||
nvim-autopairs.enable = true;
|
||||
|
||||
# Flash jump/search enhancement
|
||||
flash.enable = true;
|
||||
|
||||
# Image clipboard support
|
||||
img-clip = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default = {
|
||||
embed_image_as_base64 = false;
|
||||
prompt_for_file_name = false;
|
||||
drag_and_drop = {
|
||||
insert_mode = true;
|
||||
};
|
||||
use_absolute_path = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Trim trailing whitespace
|
||||
trim = {
|
||||
enable = true;
|
||||
settings = {
|
||||
highlight = true;
|
||||
ft_blocklist = [
|
||||
"checkhealth"
|
||||
"floaterm"
|
||||
"lspinfo"
|
||||
"neo-tree"
|
||||
"TelescopePrompt"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# Collection of small useful plugins
|
||||
snacks.enable = true;
|
||||
};
|
||||
}
|
17
programs/nixvim/plugins/git.nix
Normal file
17
programs/nixvim/plugins/git.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
# Git signs in the gutter
|
||||
gitsigns = {
|
||||
enable = true;
|
||||
settings.signs = {
|
||||
add.text = "+";
|
||||
change.text = "~";
|
||||
delete.text = "_";
|
||||
topdelete.text = "‾";
|
||||
changedelete.text = "~";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
9
programs/nixvim/plugins/lsp/default.nix
Normal file
9
programs/nixvim/plugins/lsp/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./servers.nix
|
||||
./keymaps.nix
|
||||
./formatting.nix
|
||||
];
|
||||
}
|
19
programs/nixvim/plugins/lsp/formatting.nix
Normal file
19
programs/nixvim/plugins/lsp/formatting.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
programs.nixvim = {
|
||||
# Diagnostics display
|
||||
diagnostic.settings.virtual_text = true;
|
||||
|
||||
plugins = {
|
||||
# Auto-format on save
|
||||
lsp-format = {
|
||||
enable = true;
|
||||
lspServersToEnable = "all";
|
||||
};
|
||||
|
||||
# Sane defaults for all servers
|
||||
lspconfig.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
43
programs/nixvim/plugins/lsp/keymaps.nix
Normal file
43
programs/nixvim/plugins/lsp/keymaps.nix
Normal file
|
@ -0,0 +1,43 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
programs.nixvim.lsp.keymaps = [
|
||||
# Diagnostics navigation
|
||||
{
|
||||
key = "<leader>k";
|
||||
action.__raw = "function() vim.diagnostic.jump({ count=-1, float=true }) end";
|
||||
}
|
||||
{
|
||||
key = "<leader>j";
|
||||
action.__raw = "function() vim.diagnostic.jump({ count=1, float=true }) end";
|
||||
}
|
||||
|
||||
# LSP navigation
|
||||
{
|
||||
key = "gd";
|
||||
lspBufAction = "definition";
|
||||
}
|
||||
{
|
||||
key = "gD";
|
||||
lspBufAction = "references";
|
||||
}
|
||||
{
|
||||
key = "gt";
|
||||
lspBufAction = "type_definition";
|
||||
}
|
||||
{
|
||||
key = "gi";
|
||||
lspBufAction = "implementation";
|
||||
}
|
||||
|
||||
# Documentation and refactoring
|
||||
{
|
||||
key = "K";
|
||||
lspBufAction = "hover";
|
||||
}
|
||||
{
|
||||
key = "<F2>";
|
||||
lspBufAction = "rename";
|
||||
}
|
||||
];
|
||||
}
|
79
programs/nixvim/plugins/lsp/servers.nix
Normal file
79
programs/nixvim/plugins/lsp/servers.nix
Normal file
|
@ -0,0 +1,79 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
programs.nixvim.lsp = {
|
||||
inlayHints.enable = true;
|
||||
|
||||
servers = {
|
||||
# Python
|
||||
basedpyright = {
|
||||
enable = true;
|
||||
settings.settings.basedpyright = {
|
||||
analysis = {
|
||||
autoImportCompletions = true;
|
||||
autoSearchPaths = true;
|
||||
inlayHints = {
|
||||
callArgumentNames = true;
|
||||
};
|
||||
diagnosticMode = "openFilesOnly";
|
||||
reportMissingImports = true;
|
||||
reportMissingParameterType = true;
|
||||
reportUnnecessaryComparison = true;
|
||||
reportUnnecessaryContains = true;
|
||||
reportUnusedClass = true;
|
||||
reportUnusedFunction = true;
|
||||
reportUnsedImports = true;
|
||||
reportUnsusedVariables = true;
|
||||
typeCheckingMode = "recommended";
|
||||
useLibraryCodeForTypes = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Shell scripting
|
||||
bashls.enable = true;
|
||||
|
||||
# Web development
|
||||
html.enable = true;
|
||||
jsonls.enable = true;
|
||||
yamlls.enable = true;
|
||||
ts_ls.enable = true;
|
||||
|
||||
# Query languages
|
||||
jqls.enable = true;
|
||||
|
||||
# Lua
|
||||
lua_ls = {
|
||||
enable = true;
|
||||
settings.settings.diagnostics.globals = [ "vim" ];
|
||||
};
|
||||
|
||||
# Documentation
|
||||
marksman.enable = true;
|
||||
|
||||
# Scala
|
||||
metals.enable = true;
|
||||
|
||||
# Nix
|
||||
nil_ls.enable = true;
|
||||
nixd.enable = true;
|
||||
|
||||
# Rust
|
||||
rust_analyzer.enable = true;
|
||||
|
||||
# Swift/iOS development
|
||||
sourcekit = {
|
||||
enable = true;
|
||||
settings = {
|
||||
cmd = [
|
||||
"xcrun"
|
||||
"sourcekit-lsp"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# Typst
|
||||
tinymist.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
40
programs/nixvim/plugins/ui.nix
Normal file
40
programs/nixvim/plugins/ui.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
programs.nixvim = {
|
||||
# Colorscheme
|
||||
colorschemes.tokyonight = {
|
||||
enable = true;
|
||||
settings = {
|
||||
style = "night";
|
||||
on_colors.__raw = "function(colors) colors.bg = \"#000000\" end";
|
||||
};
|
||||
};
|
||||
|
||||
plugins = {
|
||||
# Icons for file types
|
||||
web-devicons.enable = true;
|
||||
|
||||
# Color highlighter (shows colors in code)
|
||||
colorizer = {
|
||||
enable = true;
|
||||
settings.user_default_options.names = false;
|
||||
};
|
||||
|
||||
# Indentation guides
|
||||
indent-blankline.enable = true;
|
||||
|
||||
# Markdown preview with live rendering
|
||||
markview.enable = true;
|
||||
|
||||
# UI component library
|
||||
nui.enable = true;
|
||||
|
||||
# Loading/progress indicators
|
||||
fidget.enable = true;
|
||||
|
||||
# Status line (imported from separate file)
|
||||
# lualine is in lualine.nix
|
||||
};
|
||||
};
|
||||
}
|
29
programs/nixvim/plugins/utility.nix
Normal file
29
programs/nixvim/plugins/utility.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
# Lazy loading support
|
||||
lz-n.enable = true;
|
||||
|
||||
# File manager
|
||||
oil = {
|
||||
enable = true;
|
||||
lazyLoad.settings.cmd = "Oil";
|
||||
};
|
||||
|
||||
# TODO comment highlighting
|
||||
todo-comments = {
|
||||
enable = true;
|
||||
keymaps.todoTelescope.key = "<leader>t";
|
||||
};
|
||||
|
||||
# Diagnostics list
|
||||
trouble.enable = true;
|
||||
|
||||
# Typst language preview
|
||||
typst-preview.enable = true;
|
||||
|
||||
# Key binding help
|
||||
which-key.enable = true;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue