Compare commits
No commits in common. "main" and "init-lua" have entirely different histories.
22 changed files with 212 additions and 963 deletions
67
.github/actions/setup-nix/action.yml
vendored
67
.github/actions/setup-nix/action.yml
vendored
|
|
@ -1,67 +0,0 @@
|
||||||
name: setup-nix
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
system:
|
|
||||||
type: string
|
|
||||||
required: true
|
|
||||||
sandbox:
|
|
||||||
type: string
|
|
||||||
default: "true"
|
|
||||||
|
|
||||||
runs:
|
|
||||||
using: composite
|
|
||||||
steps:
|
|
||||||
- name: reclaim space (linux)
|
|
||||||
if: runner.os == 'Linux'
|
|
||||||
uses: wimpysworld/nothing-but-nix@main
|
|
||||||
with:
|
|
||||||
hatchet-protocol: rampage
|
|
||||||
|
|
||||||
- name: reclaim space (darwin)
|
|
||||||
if: runner.os == 'macOS'
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
echo "::group::disk space (before)"
|
|
||||||
sudo df -h
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
echo "::group::disable mds"
|
|
||||||
sudo mdutil -i off -a || echo "mdutil failed"
|
|
||||||
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist \
|
|
||||||
|| echo "launchctl unload failed"
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
echo "Background space expansion started. /nix will grow as space becomes available."
|
|
||||||
sudo rm -rf \
|
|
||||||
/Applications/Xcode_* \
|
|
||||||
/Library/Developer/CoreSimulator \
|
|
||||||
/Library/Frameworks \
|
|
||||||
/Users/runner/.dotnet \
|
|
||||||
/Users/runner/.rustup \
|
|
||||||
/Users/runner/Library/Android \
|
|
||||||
/Users/runner/Library/Caches \
|
|
||||||
/Users/runner/Library/Developer/CoreSimulator \
|
|
||||||
/Users/runner/hostedtoolcache &
|
|
||||||
|
|
||||||
- name: install nix
|
|
||||||
uses: cachix/install-nix-action@v31
|
|
||||||
with:
|
|
||||||
# Putting build-dir in /nix is a workaround for https://github.com/wimpysworld/nothing-but-nix/issues/18
|
|
||||||
extra_nix_config: |
|
|
||||||
build-dir = /nix/build
|
|
||||||
sandbox = ${{ inputs.sandbox }}
|
|
||||||
system = ${{ inputs.system }}
|
|
||||||
|
|
||||||
- name: create build-dir
|
|
||||||
shell: bash
|
|
||||||
run: sudo mkdir -p /nix/build
|
|
||||||
|
|
||||||
- name: post setup-nix
|
|
||||||
if: runner.os == 'macOS'
|
|
||||||
uses: srz-zumix/post-run-action@v2
|
|
||||||
with:
|
|
||||||
shell: bash -e {0}
|
|
||||||
post-run: |
|
|
||||||
echo "::group::disk space (after)"
|
|
||||||
sudo df -h
|
|
||||||
echo "::endgroup::"
|
|
||||||
135
.github/workflows/ci.yml
vendored
135
.github/workflows/ci.yml
vendored
|
|
@ -1,135 +0,0 @@
|
||||||
name: Nix
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
system:
|
|
||||||
- x86_64-linux
|
|
||||||
- aarch64-linux
|
|
||||||
- x86_64-darwin
|
|
||||||
runs-on: ${{ matrix.system == 'x86_64-linux' && 'ubuntu-24.04'
|
|
||||||
|| matrix.system == 'aarch64-linux' && 'ubuntu-24.04-arm'
|
|
||||||
|| matrix.system == 'x86_64-darwin' && 'macos-latest' }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: setup nix
|
|
||||||
uses: ./.github/actions/setup-nix
|
|
||||||
with:
|
|
||||||
system: ${{ matrix.system }}
|
|
||||||
|
|
||||||
- name: Login to tailscale
|
|
||||||
uses: tailscale/github-action@v3.2.3
|
|
||||||
with:
|
|
||||||
oauth-client-id: ${{ secrets.TS_OAUTH_CLIENT_ID }}
|
|
||||||
oauth-secret: ${{ secrets.TS_OAUTH_SECRET }}
|
|
||||||
hostname: ${{ matrix.system == 'x86_64-linux' && 'github-actions-x86-64-linux'
|
|
||||||
|| matrix.system == 'aarch64-linux' && 'github-actions-aarch64-linux'
|
|
||||||
|| matrix.system == 'x86_64-darwin' && 'github-actions-x86-64-darwin' }}
|
|
||||||
tags: tag:ci
|
|
||||||
|
|
||||||
# - name: Install and start Tailscale
|
|
||||||
# run: |
|
|
||||||
# # Start tailscaled daemon in background using nix shell
|
|
||||||
# nix profile add nixpkgs#tailscale
|
|
||||||
# sudo tailscaled --state=mem: &
|
|
||||||
|
|
||||||
# # Wait for daemon to be ready
|
|
||||||
# sleep 10
|
|
||||||
|
|
||||||
# # Connect using OAuth
|
|
||||||
# HOSTNAME="${{ matrix.system == 'x86_64-linux' && 'github-actions-x86-64-linux'
|
|
||||||
# || matrix.system == 'aarch64-linux' && 'github-actions-aarch64-linux'
|
|
||||||
# || matrix.system == 'x86_64-darwin' && 'github-actions-x86-64-darwin' }}"
|
|
||||||
|
|
||||||
# tailscale up \
|
|
||||||
# --authkey="${{ secrets.TS_OAUTH_SECRET }}?preauthorized=true&ephemeral=true" \
|
|
||||||
# --hostname="$HOSTNAME" \
|
|
||||||
# --advertise-tags="tag:ci" \
|
|
||||||
# --accept-routes
|
|
||||||
|
|
||||||
- name: Tailscale status
|
|
||||||
run: tailscale status || true
|
|
||||||
|
|
||||||
- name: Check if Attic endpoint is reachable
|
|
||||||
id: check_attic
|
|
||||||
run: |
|
|
||||||
if curl --connect-timeout 20 --silent --head http://wallfacer.curl-boga.ts.net:7080 | grep "200 OK"; then
|
|
||||||
echo "Attic endpoint is reachable"
|
|
||||||
echo "reachable=true" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "Attic endpoint is not reachable"
|
|
||||||
echo "reachable=false" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Curl the cache
|
|
||||||
run: |
|
|
||||||
curl --connect-timeout 20 --silent http://wallfacer.curl-boga.ts.net:7080/main/nix-cache-info || echo "Cache endpoint not reachable"
|
|
||||||
|
|
||||||
- name: Setup Attic cache
|
|
||||||
if: steps.check_attic.outputs.reachable == 'true'
|
|
||||||
uses: ryanccn/attic-action@v0.3.1
|
|
||||||
with:
|
|
||||||
endpoint: http://wallfacer.curl-boga.ts.net:7080
|
|
||||||
cache: main
|
|
||||||
token: ${{ secrets.ATTIC_TOKEN }}
|
|
||||||
|
|
||||||
- name: Check the flake
|
|
||||||
run: nix flake check --accept-flake-config
|
|
||||||
|
|
||||||
|
|
||||||
- name: Build the Neovim Configuration
|
|
||||||
run: nix build --accept-flake-config . -j3
|
|
||||||
timeout-minutes: 300
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Print out the size of /nix/store
|
|
||||||
run: du -sh /nix/store
|
|
||||||
|
|
||||||
- name: Get the init.lua path
|
|
||||||
if: matrix.system == 'x86_64-linux'
|
|
||||||
run: |
|
|
||||||
init_path=$(grep "init=" result/bin/nixvim-print-init | awk -F'=' '{print $2}')
|
|
||||||
cp $init_path init.lua
|
|
||||||
|
|
||||||
- name: Upload the artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
if: matrix.system == 'x86_64-linux'
|
|
||||||
with:
|
|
||||||
name: neovim-configuration
|
|
||||||
path: init.lua
|
|
||||||
|
|
||||||
- name: Publish the init.lua to an orphan github branch
|
|
||||||
if: matrix.system == 'x86_64-linux'
|
|
||||||
run: |
|
|
||||||
git config --global user.name github-actions
|
|
||||||
git config --global user.email github-actions@github.com
|
|
||||||
git checkout --orphan init-lua
|
|
||||||
git rm -rf .
|
|
||||||
git add init.lua
|
|
||||||
git commit -m "Publish init.lua"
|
|
||||||
git push --force origin init-lua
|
|
||||||
git checkout main # switch back to main branch for graceful job ending
|
|
||||||
|
|
||||||
check-formatting:
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
steps:
|
|
||||||
- name: Checkout the repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Install nix
|
|
||||||
uses: cachix/install-nix-action@v16
|
|
||||||
|
|
||||||
- name: Check formatting (dont update)
|
|
||||||
run: nix shell nixpkgs#alejandra -c alejandra -c .
|
|
||||||
|
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1 +0,0 @@
|
||||||
result
|
|
||||||
21
LICENSE
21
LICENSE
|
|
@ -1,21 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2025 Osman F Bayram
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
|
|
||||||
This is my neovim configuration. I am using [nix](https://github.com/nixos/nix) and [nixvim](https://github.com/nix-community/nixvim) to generate the neovim configuration.
|
|
||||||
|
|
||||||
I am also pushing the generated neovim configuration in another branch using github actions. You can see my generated init.lua file [here](https://github.com/osbm/osbm-nvim/blob/init-lua/init.lua).
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
colorschemes = {
|
|
||||||
catppuccin = {
|
|
||||||
enable = true;
|
|
||||||
settings.flavor = "mocha";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
imports = [
|
|
||||||
./colorscheme.nix
|
|
||||||
./options.nix
|
|
||||||
./plugins
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
|
||||||
# Use <Space> as leader key
|
|
||||||
globals.mapleader = " ";
|
|
||||||
globals.maplocalleader = " ";
|
|
||||||
|
|
||||||
# Set 'vi' and 'vim' aliases to nixvim
|
|
||||||
viAlias = true;
|
|
||||||
vimAlias = true;
|
|
||||||
|
|
||||||
# Setup clipboard support
|
|
||||||
clipboard = {
|
|
||||||
# Use xsel as clipboard provider
|
|
||||||
# providers.xsel.enable = true;
|
|
||||||
|
|
||||||
# Sync system clipboard
|
|
||||||
register = "unnamedplus";
|
|
||||||
};
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
nix-inspect
|
|
||||||
nixd
|
|
||||||
git
|
|
||||||
git-lfs
|
|
||||||
cloc
|
|
||||||
ripgrep
|
|
||||||
lazygit
|
|
||||||
black
|
|
||||||
fd
|
|
||||||
ripgrep
|
|
||||||
];
|
|
||||||
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>gg";
|
|
||||||
action = "<cmd>LazyGit<CR>";
|
|
||||||
options = {
|
|
||||||
desc = "LazyGit (root dir)";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
extraPlugins = with pkgs.vimPlugins; [
|
|
||||||
lazygit-nvim
|
|
||||||
];
|
|
||||||
|
|
||||||
extraConfigLua = ''
|
|
||||||
require("telescope").load_extension("lazygit")
|
|
||||||
'';
|
|
||||||
performance = {
|
|
||||||
byteCompileLua = {
|
|
||||||
enable = true;
|
|
||||||
nvimRuntime = true;
|
|
||||||
configs = true;
|
|
||||||
plugins = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
{
|
|
||||||
opts = {
|
|
||||||
# Enable relative line numbers
|
|
||||||
number = true;
|
|
||||||
relativenumber = true;
|
|
||||||
|
|
||||||
# show spaces tabs and trailing spaces
|
|
||||||
list = true;
|
|
||||||
listchars = "tab:» ,trail:·,multispace:·,lead: ,nbsp:⎕";
|
|
||||||
|
|
||||||
# Tab options
|
|
||||||
tabstop =
|
|
||||||
2; # Number of spaces a <Tab> in the text stands for (local to buffer)
|
|
||||||
shiftwidth =
|
|
||||||
2; # Number of spaces used for each step of (auto)indent (local to buffer)
|
|
||||||
softtabstop =
|
|
||||||
0; # If non-zero, number of spaces to insert for a <Tab> (local to buffer)
|
|
||||||
expandtab = true; # Expand <Tab> to spaces in Insert mode (local to buffer)
|
|
||||||
autoindent = true; # Do clever autoindenting
|
|
||||||
# TODO: i want to see 4 spaces when i press tab in python and 2 spaces in nix using setlocal
|
|
||||||
# is it possible for me to set this per language?
|
|
||||||
|
|
||||||
# folding
|
|
||||||
foldmethod = "expr";
|
|
||||||
foldexpr = "nvim_treesitter#foldexpr()";
|
|
||||||
foldlevel = 99; # Folds with a level higher than this number will be closed
|
|
||||||
foldcolumn = "1";
|
|
||||||
foldenable = true;
|
|
||||||
foldlevelstart = -1;
|
|
||||||
fillchars = {
|
|
||||||
horiz = "━";
|
|
||||||
horizup = "┻";
|
|
||||||
horizdown = "┳";
|
|
||||||
vert = "┃";
|
|
||||||
vertleft = "┫";
|
|
||||||
vertright = "┣";
|
|
||||||
verthoriz = "╋";
|
|
||||||
|
|
||||||
eob = " ";
|
|
||||||
diff = "╱";
|
|
||||||
|
|
||||||
fold = " ";
|
|
||||||
foldopen = "";
|
|
||||||
foldclose = "";
|
|
||||||
|
|
||||||
msgsep = "‾";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
{
|
|
||||||
plugins.avante = {
|
|
||||||
lazyLoad.settings.event = ["DeferredUIEnter"];
|
|
||||||
settings = {
|
|
||||||
# provider = "ollama";
|
|
||||||
# provider = "claude";
|
|
||||||
providers = {
|
|
||||||
# claude = {
|
|
||||||
# endpoint = "https://api.anthropic.com";
|
|
||||||
# extra_request_body = {
|
|
||||||
# max_tokens = 4096;
|
|
||||||
# temperature = 0;
|
|
||||||
# };
|
|
||||||
# model = "claude-3-5-sonnet-20240620";
|
|
||||||
# };
|
|
||||||
ollama = {
|
|
||||||
endpoint = "http://localhost:11434";
|
|
||||||
model = "qwen2.5-coder:32b";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
{
|
|
||||||
plugins.blink-cmp = {
|
|
||||||
settings = {
|
|
||||||
# snippets = {
|
|
||||||
# preset = "luasnip";
|
|
||||||
# };
|
|
||||||
sources = {
|
|
||||||
default = [
|
|
||||||
"lsp"
|
|
||||||
"path"
|
|
||||||
"buffer"
|
|
||||||
"copilot"
|
|
||||||
];
|
|
||||||
providers = {
|
|
||||||
copilot = {
|
|
||||||
async = true;
|
|
||||||
module = "blink-copilot";
|
|
||||||
name = "copilot";
|
|
||||||
score_offset = 100;
|
|
||||||
# Optional configurations
|
|
||||||
opts = {
|
|
||||||
max_completions = 3;
|
|
||||||
max_attempts = 4;
|
|
||||||
kind = "Copilot";
|
|
||||||
debounce = 750;
|
|
||||||
auto_refresh = {
|
|
||||||
backward = true;
|
|
||||||
forward = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
{
|
|
||||||
plugins.cmp = {
|
|
||||||
autoEnableSources = true;
|
|
||||||
settings = {
|
|
||||||
sources = [
|
|
||||||
# LSP source
|
|
||||||
{
|
|
||||||
name = "nvim_lsp";
|
|
||||||
}
|
|
||||||
# For path completion
|
|
||||||
{
|
|
||||||
name = "path";
|
|
||||||
}
|
|
||||||
# For buffer completion
|
|
||||||
{
|
|
||||||
name = "buffer";
|
|
||||||
keyword_length = 5;
|
|
||||||
}
|
|
||||||
# For command line completion
|
|
||||||
{name = "cmdline";}
|
|
||||||
];
|
|
||||||
mapping = {
|
|
||||||
# <CR> means enter
|
|
||||||
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
|
||||||
"<C-n>" = "cmp.mapping.select_next_item()";
|
|
||||||
"<C-p>" = "cmp.mapping.select_prev_item()";
|
|
||||||
"<C-e>" = "cmp.mapping.close()";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
plugins.comment.settings = {
|
|
||||||
toggler.line = "<C-_>";
|
|
||||||
opleader.line = "<C-_>";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
||||||
{lib, ...}: {
|
|
||||||
imports =
|
|
||||||
lib.mapAttrsToList (name: _path: ./. + "/${name}")
|
|
||||||
(lib.filterAttrs (filename: kind:
|
|
||||||
filename != "default.nix" && (kind == "regular" || kind == "directory"))
|
|
||||||
(builtins.readDir ./.));
|
|
||||||
|
|
||||||
plugins = {
|
|
||||||
# todo comments highlighter
|
|
||||||
todo-comments.enable = true;
|
|
||||||
|
|
||||||
# a statusline plugin
|
|
||||||
lualine.enable = true;
|
|
||||||
|
|
||||||
# syntax highlighting
|
|
||||||
treesitter.enable = true;
|
|
||||||
|
|
||||||
# completion plugin
|
|
||||||
cmp.enable = false;
|
|
||||||
|
|
||||||
# blink completion plugin
|
|
||||||
blink-cmp.enable = true;
|
|
||||||
|
|
||||||
# Extensible UI for Neovim notifications and LSP progress messages.
|
|
||||||
fidget.enable = true;
|
|
||||||
|
|
||||||
# A navigation plugin that uses lsp symbols to provide a breadcrumb trail
|
|
||||||
navic.enable = true; # TODO: not seeing the output rn
|
|
||||||
|
|
||||||
# fast create folders and files
|
|
||||||
oil.enable = true;
|
|
||||||
|
|
||||||
# a file explorer
|
|
||||||
telescope.enable = true;
|
|
||||||
|
|
||||||
# vim exercises
|
|
||||||
vim-be-good.enable = true;
|
|
||||||
|
|
||||||
# Provides Nerd Font icons
|
|
||||||
web-devicons.enable = true;
|
|
||||||
|
|
||||||
# better ui experience
|
|
||||||
noice.enable = true;
|
|
||||||
|
|
||||||
# an introduction plugin
|
|
||||||
mini.enable = true; # TODO look more into the mini plugin
|
|
||||||
|
|
||||||
# cursor animation
|
|
||||||
smear-cursor.enable = false;
|
|
||||||
|
|
||||||
# add buffer tab plugin
|
|
||||||
bufferline.enable = true;
|
|
||||||
|
|
||||||
# git integration
|
|
||||||
gitsigns.enable = true;
|
|
||||||
|
|
||||||
# commenting related plugin
|
|
||||||
comment.enable = true;
|
|
||||||
|
|
||||||
# lsp support
|
|
||||||
lsp.enable = true;
|
|
||||||
|
|
||||||
# gives me hardtime about my bad habits
|
|
||||||
hardtime.enable = false; # TODO: enable when I get used to my new keyboard
|
|
||||||
|
|
||||||
# tip pop-up
|
|
||||||
which-key.enable = true;
|
|
||||||
|
|
||||||
# ai support
|
|
||||||
avante.enable = true;
|
|
||||||
|
|
||||||
# lazy loading provider
|
|
||||||
lz-n.enable = true;
|
|
||||||
|
|
||||||
# oil git status shower
|
|
||||||
oil-git-status.enable = true;
|
|
||||||
|
|
||||||
# blink copilot
|
|
||||||
blink-copilot.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
plugins.gitsigns.settings = {
|
|
||||||
current_line_blame = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
self,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
plugins.lsp.servers = {
|
|
||||||
astro.enable = true;
|
|
||||||
dockerls.enable = true;
|
|
||||||
nixd = {
|
|
||||||
enable = true;
|
|
||||||
settings = let
|
|
||||||
flake = ''(builtins.getFlake "${self}")'';
|
|
||||||
in {
|
|
||||||
nixpkgs.expr = "import ${flake}.inputs.nixpkgs { }";
|
|
||||||
formatting.command = ["${lib.getExe pkgs.nixfmt-rfc-style}"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pyright.enable = true;
|
|
||||||
typos_lsp = {
|
|
||||||
enable = true;
|
|
||||||
extraOptions.init_options.diagnosticSeverity = "Hint";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
plugins.mini = {
|
|
||||||
modules = {
|
|
||||||
starter = {
|
|
||||||
header = ''
|
|
||||||
_ _
|
|
||||||
___ ___| |__ _ __ ___ __| | _____ __
|
|
||||||
/ _ \/ __| '_ \| '_ ` _ \ / _` |/ _ \ \ / /
|
|
||||||
| (_) \__ \ |_) | | | | | || (_| | __/\ V /
|
|
||||||
\___/|___/_.__/|_| |_| |_(_)__,_|\___| \_/
|
|
||||||
'';
|
|
||||||
# this items and content_hooks are copied from khanelivim config
|
|
||||||
# but i want to understand them
|
|
||||||
items = {
|
|
||||||
"__unkeyed-1.builtin_actions".__raw = "require('mini.starter').sections.builtin_actions()";
|
|
||||||
"__unkeyed-2.recent_files_current_directory".__raw = "require('mini.starter').sections.recent_files(10, true)";
|
|
||||||
"__unkeyed-3.recent_files".__raw = "require('mini.starter').sections.recent_files(10, false)";
|
|
||||||
"__unkeyed-4.sessions".__raw = lib.mkIf (config.plugins.mini.enable
|
|
||||||
&& lib.hasAttr "sessions" config.plugins.mini.modules)
|
|
||||||
"require('mini.starter').sections.sessions(5, true)";
|
|
||||||
__unkeyed-5 = lib.mkIf config.plugins.persistence.enable {
|
|
||||||
name = "Restore session";
|
|
||||||
action.__raw = "[[lua require('persistence').load()]]";
|
|
||||||
section = "Session";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
content_hooks = {
|
|
||||||
"__unkeyed-1.adding_bullet".__raw = "require('mini.starter').gen_hook.adding_bullet()";
|
|
||||||
"__unkeyed-2.indexing".__raw = "require('mini.starter').gen_hook.indexing('all', { 'Builtin actions' })";
|
|
||||||
"__unkeyed-3.padding".__raw = "require('mini.starter').gen_hook.aligning('center', 'center')";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
plugins.oil.settings = {
|
|
||||||
view_options = {
|
|
||||||
show_hidden = true;
|
|
||||||
};
|
|
||||||
win_options = {
|
|
||||||
signcolumn = "yes:2";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# add this keymaps only if oil plugin is enabled
|
|
||||||
keymaps = lib.mkIf config.plugins.oil.enable [
|
|
||||||
{
|
|
||||||
action = "<cmd>Oil<CR>";
|
|
||||||
key = "-";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
# TODO what does silent do?
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
{
|
|
||||||
plugins.treesitter = {
|
|
||||||
folding = true; # i dont like the way it starts neovim with everything folded
|
|
||||||
settings = {
|
|
||||||
ensure_installed = [
|
|
||||||
"python"
|
|
||||||
"astro"
|
|
||||||
"just"
|
|
||||||
"dockerfile"
|
|
||||||
"json"
|
|
||||||
"yaml"
|
|
||||||
"lua"
|
|
||||||
"nix"
|
|
||||||
"c"
|
|
||||||
"markdown"
|
|
||||||
# TODO: add mdx
|
|
||||||
];
|
|
||||||
highlight = {enable = true;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
plugins.which-key.settings = {
|
|
||||||
delay = 500;
|
|
||||||
win = {
|
|
||||||
border = "single";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
240
flake.lock
generated
240
flake.lock
generated
|
|
@ -1,240 +0,0 @@
|
||||||
{
|
|
||||||
"nodes": {
|
|
||||||
"flake-parts": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": [
|
|
||||||
"nixvim",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1760948891,
|
|
||||||
"narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"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": [
|
|
||||||
"nixvim",
|
|
||||||
"nuschtosSearch",
|
|
||||||
"flake-utils"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixvim",
|
|
||||||
"nuschtosSearch",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1754860581,
|
|
||||||
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
|
|
||||||
"owner": "NuschtOS",
|
|
||||||
"repo": "ixx",
|
|
||||||
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NuschtOS",
|
|
||||||
"ref": "v0.1.1",
|
|
||||||
"repo": "ixx",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-formatter-pack": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"nmd": "nmd",
|
|
||||||
"nmt": "nmt"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1756744433,
|
|
||||||
"narHash": "sha256-6BSEvkprwEQDQQgW5UH/1GkBPGM8M9+qX6o9ePslr6E=",
|
|
||||||
"owner": "Gerschtli",
|
|
||||||
"repo": "nix-formatter-pack",
|
|
||||||
"rev": "63b748033a3fa0af80f8ed908521122e48858c30",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Gerschtli",
|
|
||||||
"repo": "nix-formatter-pack",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1761373498,
|
|
||||||
"narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1761656231,
|
|
||||||
"narHash": "sha256-EiED5k6gXTWoAIS8yQqi5mAX6ojnzpHwAQTS3ykeYMg=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "e99366c665bdd53b7b500ccdc5226675cfc51f45",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixvim": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": "flake-parts",
|
|
||||||
"nixpkgs": "nixpkgs_2",
|
|
||||||
"nuschtosSearch": "nuschtosSearch",
|
|
||||||
"systems": "systems_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1761744315,
|
|
||||||
"narHash": "sha256-OknzyEoI+VEYgk/FWMyx3tvjb/MPPyqS+G/aemDz51w=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixvim",
|
|
||||||
"rev": "6233fc6b2c3f203d8a5970f4a2c1df5777902717",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixvim",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nmd": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1666190571,
|
|
||||||
"narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=",
|
|
||||||
"owner": "rycee",
|
|
||||||
"repo": "nmd",
|
|
||||||
"rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169",
|
|
||||||
"type": "gitlab"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "rycee",
|
|
||||||
"repo": "nmd",
|
|
||||||
"type": "gitlab"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nmt": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1648075362,
|
|
||||||
"narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=",
|
|
||||||
"owner": "rycee",
|
|
||||||
"repo": "nmt",
|
|
||||||
"rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae",
|
|
||||||
"type": "gitlab"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "rycee",
|
|
||||||
"repo": "nmt",
|
|
||||||
"type": "gitlab"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nuschtosSearch": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"ixx": "ixx",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixvim",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1761730856,
|
|
||||||
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
|
|
||||||
"owner": "NuschtOS",
|
|
||||||
"repo": "search",
|
|
||||||
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NuschtOS",
|
|
||||||
"repo": "search",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
|
||||||
"inputs": {
|
|
||||||
"nix-formatter-pack": "nix-formatter-pack",
|
|
||||||
"nixpkgs": "nixpkgs",
|
|
||||||
"nixvim": "nixvim"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": "root",
|
|
||||||
"version": 7
|
|
||||||
}
|
|
||||||
71
flake.nix
71
flake.nix
|
|
@ -1,71 +0,0 @@
|
||||||
{
|
|
||||||
description = "My custom neovim configuration that has been mixed and matched from various sources";
|
|
||||||
|
|
||||||
nixConfig = {
|
|
||||||
extra-substituters = [
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
];
|
|
||||||
extra-trusted-public-keys = [
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
inputs = {
|
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
||||||
# https://gerschtli.github.io/nix-formatter-pack/nix-formatter-pack-options.html
|
|
||||||
nix-formatter-pack = {
|
|
||||||
url = "github:Gerschtli/nix-formatter-pack";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
nixvim.url = "github:nix-community/nixvim";
|
|
||||||
};
|
|
||||||
|
|
||||||
outputs = {
|
|
||||||
self,
|
|
||||||
nixpkgs,
|
|
||||||
nixvim,
|
|
||||||
nix-formatter-pack,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
forAllSystems = nixpkgs.lib.genAttrs [
|
|
||||||
"aarch64-linux"
|
|
||||||
"i686-linux"
|
|
||||||
"x86_64-linux"
|
|
||||||
"aarch64-darwin"
|
|
||||||
"x86_64-darwin"
|
|
||||||
];
|
|
||||||
in {
|
|
||||||
formatter = forAllSystems (system:
|
|
||||||
nix-formatter-pack.lib.mkFormatter {
|
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
|
||||||
config.tools = {
|
|
||||||
deadnix.enable = true;
|
|
||||||
alejandra.enable = true;
|
|
||||||
statix.enable = true;
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
packages = forAllSystems (system: let
|
|
||||||
pkgs = import nixpkgs {inherit system;};
|
|
||||||
mkNixvim = specialArgs:
|
|
||||||
nixvim.legacyPackages.${system}.makeNixvimWithModule {
|
|
||||||
inherit pkgs;
|
|
||||||
module = ./config;
|
|
||||||
extraSpecialArgs =
|
|
||||||
specialArgs
|
|
||||||
// {
|
|
||||||
inherit pkgs self;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in rec {
|
|
||||||
default = mkNixvim {};
|
|
||||||
lite = mkNixvim {withLSP = false;};
|
|
||||||
|
|
||||||
default-print-init = default.config.build.printInitPackage;
|
|
||||||
lite-print-init = lite.config.build.printInitPackage;
|
|
||||||
|
|
||||||
default-init = default.config.build.initSource;
|
|
||||||
lite-init = lite.config.build.initSource;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
212
init.lua
Normal file
212
init.lua
Normal file
|
|
@ -0,0 +1,212 @@
|
||||||
|
-- Ignore the user lua configuration
|
||||||
|
vim.opt.runtimepath:remove(vim.fn.stdpath("config")) -- ~/.config/nvim
|
||||||
|
vim.opt.runtimepath:remove(vim.fn.stdpath("config") .. "/after") -- ~/.config/nvim/after
|
||||||
|
|
||||||
|
-- Nixvim's internal module table
|
||||||
|
-- Can be used to share code throughout init.lua
|
||||||
|
local _M = {}
|
||||||
|
|
||||||
|
-- Set up options {{{
|
||||||
|
do
|
||||||
|
local nixvim_options = {
|
||||||
|
autoindent = true,
|
||||||
|
clipboard = "unnamedplus",
|
||||||
|
expandtab = true,
|
||||||
|
list = true,
|
||||||
|
listchars = "tab:» ,trail:·,multispace:·,lead: ,nbsp:⎕",
|
||||||
|
number = true,
|
||||||
|
relativenumber = true,
|
||||||
|
shiftwidth = 2,
|
||||||
|
softtabstop = 0,
|
||||||
|
tabstop = 2,
|
||||||
|
termguicolors = true,
|
||||||
|
}
|
||||||
|
|
||||||
|
for k, v in pairs(nixvim_options) do
|
||||||
|
vim.opt[k] = v
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
require("gruvbox").setup({})
|
||||||
|
|
||||||
|
vim.cmd([[let $BAT_THEME = 'gruvbox'
|
||||||
|
|
||||||
|
colorscheme gruvbox
|
||||||
|
]])
|
||||||
|
require("nvim-web-devicons").setup({})
|
||||||
|
|
||||||
|
require("mini.starter").setup({
|
||||||
|
content_hooks = {
|
||||||
|
require("mini.starter").gen_hook.adding_bullet(),
|
||||||
|
require("mini.starter").gen_hook.indexing("all", { "Builtin actions" }),
|
||||||
|
require("mini.starter").gen_hook.aligning("center", "center"),
|
||||||
|
},
|
||||||
|
header = " _ _\n ___ ___| |__ _ __ ___ __| | _____ __\n / _ \\/ __| '_ \\| '_ ` _ \\ / _` |/ _ \\ \\ / /\n| (_) \\__ \\ |_) | | | | | || (_| | __/\\ V /\n \\___/|___/_.__/|_| |_| |_(_)__,_|\\___| \\_/\n",
|
||||||
|
items = {
|
||||||
|
require("mini.starter").sections.builtin_actions(),
|
||||||
|
require("mini.starter").sections.recent_files(10, true),
|
||||||
|
require("mini.starter").sections.recent_files(10, false),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- LSP {{{
|
||||||
|
do
|
||||||
|
local __lspServers = {
|
||||||
|
{ extraOptions = { init_options = { diagnosticSeverity = "Hint" } }, name = "typos_lsp" },
|
||||||
|
{ name = "pyright" },
|
||||||
|
{
|
||||||
|
extraOptions = {
|
||||||
|
settings = {
|
||||||
|
nixd = {
|
||||||
|
formatting = {
|
||||||
|
command = {
|
||||||
|
"/nix/store/8dy4rqc44frv0wi4k6akn0a2znmj7bym-nixfmt-unstable-2025-04-04/bin/nixfmt",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
nixpkgs = {
|
||||||
|
expr = 'import (builtins.getFlake "/nix/store/gv8kpbbakfkw91b3xkr0xgkhwzmnqq6r-source").inputs.nixpkgs { }',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
name = "nixd",
|
||||||
|
},
|
||||||
|
{ name = "dockerls" },
|
||||||
|
{ name = "astro" },
|
||||||
|
}
|
||||||
|
-- Adding lspOnAttach function to nixvim module lua table so other plugins can hook into it.
|
||||||
|
_M.lspOnAttach = function(client, bufnr) end
|
||||||
|
local __lspCapabilities = function()
|
||||||
|
capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
|
||||||
|
capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities())
|
||||||
|
|
||||||
|
return capabilities
|
||||||
|
end
|
||||||
|
|
||||||
|
local __setup = {
|
||||||
|
on_attach = _M.lspOnAttach,
|
||||||
|
capabilities = __lspCapabilities(),
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, server in ipairs(__lspServers) do
|
||||||
|
if type(server) == "string" then
|
||||||
|
require("lspconfig")[server].setup(__setup)
|
||||||
|
else
|
||||||
|
local options = server.extraOptions
|
||||||
|
|
||||||
|
if options == nil then
|
||||||
|
options = __setup
|
||||||
|
else
|
||||||
|
options = vim.tbl_extend("keep", options, __setup)
|
||||||
|
end
|
||||||
|
|
||||||
|
require("lspconfig")[server.name].setup(options)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
local cmp = require("cmp")
|
||||||
|
cmp.setup({
|
||||||
|
mapping = {
|
||||||
|
["<C-e>"] = cmp.mapping.close(),
|
||||||
|
["<C-n>"] = cmp.mapping.select_next_item(),
|
||||||
|
["<C-p>"] = cmp.mapping.select_prev_item(),
|
||||||
|
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
||||||
|
},
|
||||||
|
sources = {
|
||||||
|
{ name = "nvim_lsp" },
|
||||||
|
{ name = "path" },
|
||||||
|
{ keyword_length = 5, name = "buffer" },
|
||||||
|
{ name = "cmdline" },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.opt.runtimepath:prepend(vim.fs.joinpath(vim.fn.stdpath("data"), "site"))
|
||||||
|
require("nvim-treesitter.configs").setup({
|
||||||
|
ensure_installed = { "python", "astro", "just", "dockerfile", "json", "yaml", "lua", "nix", "c", "markdown" },
|
||||||
|
highlight = { enable = true },
|
||||||
|
parser_install_dir = vim.fs.joinpath(vim.fn.stdpath("data"), "site"),
|
||||||
|
})
|
||||||
|
|
||||||
|
require("todo-comments").setup({})
|
||||||
|
|
||||||
|
require("telescope").setup({})
|
||||||
|
|
||||||
|
local __telescopeExtensions = {}
|
||||||
|
for i, extension in ipairs(__telescopeExtensions) do
|
||||||
|
require("telescope").load_extension(extension)
|
||||||
|
end
|
||||||
|
|
||||||
|
require("smear_cursor").setup({})
|
||||||
|
|
||||||
|
require("oil").setup({ view_options = { show_hidden = true } })
|
||||||
|
|
||||||
|
require("noice").setup({})
|
||||||
|
|
||||||
|
require("nvim-navic").setup({})
|
||||||
|
|
||||||
|
require("lualine").setup({})
|
||||||
|
|
||||||
|
require("gitsigns").setup({ current_line_blame = true })
|
||||||
|
|
||||||
|
require("fidget").setup({})
|
||||||
|
|
||||||
|
require("Comment").setup({ opleader = { line = "<C-_>" }, toggler = { line = "<C-_>" } })
|
||||||
|
|
||||||
|
require("bufferline").setup({})
|
||||||
|
|
||||||
|
-- Set up keybinds {{{
|
||||||
|
do
|
||||||
|
local __nixvim_binds = { { action = "<cmd>Oil<CR>", key = "-", mode = "", options = { silent = true } } }
|
||||||
|
for i, map in ipairs(__nixvim_binds) do
|
||||||
|
vim.keymap.set(map.mode, map.key, map.action, map.options)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- Set up autogroups {{
|
||||||
|
do
|
||||||
|
local __nixvim_autogroups = { nixvim_binds_LspAttach = { clear = true } }
|
||||||
|
|
||||||
|
for group_name, options in pairs(__nixvim_autogroups) do
|
||||||
|
vim.api.nvim_create_augroup(group_name, options)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- }}
|
||||||
|
-- Set up autocommands {{
|
||||||
|
do
|
||||||
|
local __nixvim_autocommands = {
|
||||||
|
{
|
||||||
|
callback = function(args)
|
||||||
|
do
|
||||||
|
local __nixvim_binds = {}
|
||||||
|
|
||||||
|
for i, map in ipairs(__nixvim_binds) do
|
||||||
|
local options = vim.tbl_extend("keep", map.options or {}, { buffer = args.buf })
|
||||||
|
vim.keymap.set(map.mode, map.key, map.action, options)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
desc = "Load keymaps for LspAttach",
|
||||||
|
event = "LspAttach",
|
||||||
|
group = "nixvim_binds_LspAttach",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, autocmd in ipairs(__nixvim_autocommands) do
|
||||||
|
vim.api.nvim_create_autocmd(autocmd.event, {
|
||||||
|
group = autocmd.group,
|
||||||
|
pattern = autocmd.pattern,
|
||||||
|
buffer = autocmd.buffer,
|
||||||
|
desc = autocmd.desc,
|
||||||
|
callback = autocmd.callback,
|
||||||
|
command = autocmd.command,
|
||||||
|
once = autocmd.once,
|
||||||
|
nested = autocmd.nested,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- }}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue