initial commit
This commit is contained in:
commit
179e92ee04
17 changed files with 2377 additions and 0 deletions
19
.direnv/bin/nix-direnv-reload
Executable file
19
.direnv/bin/nix-direnv-reload
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
if [[ ! -d "/home/zoty/.config/nvim" ]]; then
|
||||
echo "Cannot find source directory; Did you move it?"
|
||||
echo "(Looking for "/home/zoty/.config/nvim")"
|
||||
echo 'Cannot force reload with this script - use "direnv reload" manually and then try again'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# rebuild the cache forcefully
|
||||
_nix_direnv_force_reload=1 direnv exec "/home/zoty/.config/nvim" true
|
||||
|
||||
# Update the mtime for .envrc.
|
||||
# This will cause direnv to reload again - but without re-building.
|
||||
touch "/home/zoty/.config/nvim/.envrc"
|
||||
|
||||
# Also update the timestamp of whatever profile_rc we have.
|
||||
# This makes sure that we know we are up to date.
|
||||
touch -r "/home/zoty/.config/nvim/.envrc" "/home/zoty/.config/nvim/.direnv"/*.rc
|
||||
1
.direnv/flake-inputs/01x5k4nlxcpyd85nnr0b9gm89rm8ff4x-source
Symbolic link
1
.direnv/flake-inputs/01x5k4nlxcpyd85nnr0b9gm89rm8ff4x-source
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
/nix/store/01x5k4nlxcpyd85nnr0b9gm89rm8ff4x-source
|
||||
1
.direnv/flake-inputs/dx2qikyb4dyb6hbdfywbmsyla0z5a1h3-source
Symbolic link
1
.direnv/flake-inputs/dx2qikyb4dyb6hbdfywbmsyla0z5a1h3-source
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
/nix/store/dx2qikyb4dyb6hbdfywbmsyla0z5a1h3-source
|
||||
1
.direnv/flake-inputs/nwcdjn11dysa7jsi8figcgcgp6xz6vlr-source
Symbolic link
1
.direnv/flake-inputs/nwcdjn11dysa7jsi8figcgcgp6xz6vlr-source
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
/nix/store/nwcdjn11dysa7jsi8figcgcgp6xz6vlr-source
|
||||
1
.direnv/flake-inputs/yj1wxm9hh8610iyzqnz75kvs6xl8j3my-source
Symbolic link
1
.direnv/flake-inputs/yj1wxm9hh8610iyzqnz75kvs6xl8j3my-source
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
/nix/store/yj1wxm9hh8610iyzqnz75kvs6xl8j3my-source
|
||||
1
.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa
Symbolic link
1
.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
/nix/store/zr45c7jc8w9k22sdj2nnaadbc2ahlyrd-nix-shell-env
|
||||
2144
.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc
Normal file
2144
.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc
Normal file
File diff suppressed because it is too large
Load diff
1
.envrc
Normal file
1
.envrc
Normal file
|
|
@ -0,0 +1 @@
|
|||
use flake
|
||||
61
flake.lock
generated
Normal file
61
flake.lock
generated
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"nodes": {
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1771369470,
|
||||
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0182a361324364ae3f436a63005877674cf45efb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"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
|
||||
}
|
||||
24
flake.nix
Normal file
24
flake.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, flake-utils }:
|
||||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
in {
|
||||
devShells.default = pkgs.mkShell {
|
||||
packages = with pkgs; [
|
||||
neovim
|
||||
|
||||
# LSPs
|
||||
lua-language-server
|
||||
nixd
|
||||
rust-analyzer
|
||||
];
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
19
init.lua
Normal file
19
init.lua
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
require("config.lazy")
|
||||
|
||||
-- Enables LSPs
|
||||
vim.lsp.enable({ "lua_ls", "nixd" })
|
||||
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
callback = function(ev)
|
||||
local opts = { buffer = ev.buf }
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
|
||||
vim.keymap.set("n", "grn", vim.lsp.buf.rename, opts)
|
||||
vim.keymap.set("n", "gra", vim.lsp.buf.code_action, opts)
|
||||
vim.keymap.set("n", "grr", vim.lsp.buf.references, opts)
|
||||
vim.keymap.set("n", "<leader>f", function()
|
||||
vim.lsp.buf.format({ async = true })
|
||||
end, opts)
|
||||
end,
|
||||
})
|
||||
|
||||
4
lazy-lock.json
Normal file
4
lazy-lock.json
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"gruvbox.nvim": { "branch": "main", "commit": "561126520034a1dac2f78ab063db025d12555998" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }
|
||||
}
|
||||
15
lsp/lua_ls.lua
Normal file
15
lsp/lua_ls.lua
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
return {
|
||||
cmd = { "lua-language-server" },
|
||||
filetypes = { "lua" },
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = { version = "LuaJIT" },
|
||||
workspace = {
|
||||
checkThirdParty = false,
|
||||
library = vim.api.nvim_get_runtime_file("", true),
|
||||
},
|
||||
diagnostics = { globals = { "vim" } },
|
||||
telemetry = { enable = false }
|
||||
},
|
||||
},
|
||||
}
|
||||
11
lsp/nixd.lua
Normal file
11
lsp/nixd.lua
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
return {
|
||||
cmd = { "nixd" },
|
||||
filetypes = { "nix" },
|
||||
settings = {
|
||||
nixd = {
|
||||
formatting = {
|
||||
command = { "nixfmt" },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
35
lua/config/lazy.lua
Normal file
35
lua/config/lazy.lua
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
-- Bootstrap lazy.nvim
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||
{ out, "WarningMsg" },
|
||||
{ "\nPress any key to exit..." },
|
||||
}, true, {})
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
-- Make sure to setup `mapleader` and `maplocalleader` before
|
||||
-- loading lazy.nvim so that mappings are correct.
|
||||
-- This is also a good place to setup other settings (vim.opt)
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = "\\"
|
||||
|
||||
require("settings")
|
||||
|
||||
-- Setup lazy.nvim
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
{ import = "plugins" },
|
||||
},
|
||||
checker = {
|
||||
enabled = true,
|
||||
notify = false,
|
||||
},
|
||||
})
|
||||
6
lua/plugins/theme.lua
Normal file
6
lua/plugins/theme.lua
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
return {
|
||||
"ellisonleao/gruvbox.nvim",
|
||||
priority = 1000,
|
||||
config = true,
|
||||
opts = ...,
|
||||
}
|
||||
33
lua/settings.lua
Normal file
33
lua/settings.lua
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
-- Line numbers
|
||||
vim.opt.number = true -- show absolute line numbers
|
||||
vim.opt.relativenumber = true -- show relative line numbers
|
||||
|
||||
-- Mouse & clipboard
|
||||
vim.opt.mouse = "a" -- enable mouse support
|
||||
vim.opt.clipboard = "unnamedplus" -- use system clipboard
|
||||
|
||||
-- Visual behavior
|
||||
vim.opt.termguicolors = true -- enable true colors
|
||||
vim.opt.cursorline = true -- highlight the current line
|
||||
vim.opt.wrap = false -- do not wrap long lines
|
||||
vim.opt.signcolumn = "yes" -- always show the sign number (LSP, git)
|
||||
|
||||
-- Scrolling
|
||||
vim.opt.scrolloff = 8 -- keep space above/below cursor
|
||||
vim.opt.sidescrolloff = 8 -- keep space left/right of cursor
|
||||
|
||||
-- Indentation
|
||||
vim.opt.expandtab = true -- use spaces instead of tabs
|
||||
vim.opt.tabstop = 2 -- how many spaces a tab looks like
|
||||
vim.opt.shiftwidth = 2 -- how many spaces when indenting
|
||||
|
||||
-- Search
|
||||
vim.opt.ignorecase = true -- case-insensitive search
|
||||
vim.opt.smartcase = true -- case-sensitive if uppercase is used
|
||||
vim.opt.incsearch = true -- show matches while typing
|
||||
vim.opt.hlsearch = false -- do not keep matches highlighted
|
||||
|
||||
-- Window splits
|
||||
vim.opt.splitbelow = true -- horizontal splits open below
|
||||
vim.opt.splitright = true -- vertical splits open to the right
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue