mirror of
https://github.com/Cian-H/dotfiles.git
synced 2026-02-27 18:28:02 +00:00
Changed . token to _dot
This change allows the dotfiles to work with chezmoi (e.g: on windows) and improves grepability with neovim/telescope
This commit is contained in:
32
dot_config/nvim/lua/config/icons.lua
Normal file
32
dot_config/nvim/lua/config/icons.lua
Normal file
@@ -0,0 +1,32 @@
|
||||
return {
|
||||
Ada = {
|
||||
icon = "",
|
||||
color = "#b89843",
|
||||
cterm_color = "137",
|
||||
name = "Ada",
|
||||
},
|
||||
Fortran = {
|
||||
icon = "",
|
||||
color = "#734f96",
|
||||
cterm_color = "96",
|
||||
name = "Fortran",
|
||||
},
|
||||
Lisp = {
|
||||
icon = "",
|
||||
color = "#c40904",
|
||||
cterm_color = "160",
|
||||
name = "Lisp",
|
||||
},
|
||||
Prolog = {
|
||||
icon = "",
|
||||
color = "#e4b854",
|
||||
cterm_color = "179",
|
||||
name = "Prolog",
|
||||
},
|
||||
Scallop = {
|
||||
icon = "",
|
||||
color = "#ffa6c9",
|
||||
cterm_color = "225",
|
||||
name = "Scallop",
|
||||
},
|
||||
}
|
||||
92
dot_config/nvim/lua/config/init.lua
Normal file
92
dot_config/nvim/lua/config/init.lua
Normal file
@@ -0,0 +1,92 @@
|
||||
-- First, i want to configure my vanilla nvim settings
|
||||
vim.wo.number = true -- Line numbers
|
||||
vim.wo.relativenumber = true
|
||||
vim.opt.wrap = false
|
||||
vim.opt.mouse = "a" -- enable mouse mode for window resizing
|
||||
vim.opt.clipboard = "unnamedplus" -- share system and nvim clipboard
|
||||
vim.g.have_nerd_font = true
|
||||
vim.opt.undofile = true -- Save undo history
|
||||
-- Add custom commentstring definitions
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "nix,flake",
|
||||
command = "setlocal commentstring=#\\ %s",
|
||||
})
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "scallop",
|
||||
command = "setlocal commentstring=//%s",
|
||||
})
|
||||
-- Add custom file types
|
||||
vim.filetype.add({
|
||||
extension = {
|
||||
scl = "scallop",
|
||||
prolog = "prolog",
|
||||
pro = "prolog",
|
||||
nu = "nu",
|
||||
mojo = "mojo",
|
||||
},
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
callback = function(args)
|
||||
local bufnr = args.buf
|
||||
local client = vim.lsp.get_client_by_id(args.data.client_id)
|
||||
if client.server_capabilities.completionProvider then
|
||||
vim.bo[bufnr].omnifunc = "v:lua.vim.lsp.omnifunc"
|
||||
end
|
||||
if client.server_capabilities.definitionProvider then
|
||||
vim.bo[bufnr].tagfunc = "v:lua.vim.lsp.tagfunc"
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- Case-insensitive searching UNLESS \C or capital in search
|
||||
vim.opt.ignorecase = true
|
||||
vim.opt.smartcase = true
|
||||
vim.opt.signcolumn = "yes" -- Keep signcolumn on by default
|
||||
-- Decrease update time and timeout between key commands
|
||||
vim.opt.updatetime = 250
|
||||
vim.opt.timeoutlen = 300
|
||||
-- Configure how new splits should be opened
|
||||
vim.opt.splitright = true
|
||||
vim.opt.splitbelow = true
|
||||
-- Render markers so we don't mistakenly put tabs (and other whitespace) where we dont want them
|
||||
vim.opt.list = true
|
||||
vim.opt.listchars = { tab = "» ", trail = "·", nbsp = "␣" }
|
||||
-- Also, while we're at it: let's set the tab widths
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.softtabstop = 4
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.smartindent = true
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.smarttab = true
|
||||
vim.opt.inccommand = "split" -- Preview substitutions live, as you type!
|
||||
vim.opt.cursorline = true -- Show which line your cursor is on
|
||||
vim.opt.scrolloff = 4 -- Minimal number of screen lines to keep above and below the cursor.
|
||||
-- Set highlight on search, but clear on pressing <Esc> in normal mode
|
||||
vim.opt.hlsearch = true
|
||||
vim.keymap.set("n", "<Esc>", "<cmd>nohlsearch<CR>")
|
||||
|
||||
-- Highlight when yanking (copying) text
|
||||
vim.api.nvim_create_autocmd("TextYankPost", {
|
||||
desc = "Highlight when yanking (copying) text",
|
||||
group = vim.api.nvim_create_augroup("kickstart-highlight-yank", { clear = true }),
|
||||
callback = function()
|
||||
vim.highlight.on_yank()
|
||||
end,
|
||||
})
|
||||
|
||||
-- Diagnostics config
|
||||
vim.diagnostic.config({
|
||||
float = {
|
||||
focusable = false,
|
||||
style = "minimal",
|
||||
border = "rounded",
|
||||
source = "always",
|
||||
header = "",
|
||||
prefix = "",
|
||||
},
|
||||
signs = true,
|
||||
underline = true,
|
||||
update_in_insert = true,
|
||||
severity_sort = false,
|
||||
})
|
||||
266
dot_config/nvim/lua/config/keys.lua
Normal file
266
dot_config/nvim/lua/config/keys.lua
Normal file
@@ -0,0 +1,266 @@
|
||||
return {
|
||||
groups = {
|
||||
{ "<leader>s", group = "[S]earch" },
|
||||
{ "<leader>c", group = "[C]ode" },
|
||||
{ "<leader>d", group = "[D]iagnostics" },
|
||||
{ "<leader>g", group = "[G]enerate" },
|
||||
{ "<leader>r", group = "[R]ename" },
|
||||
{ "<leader>w", group = "[W]orkspace" },
|
||||
{ "<leader>t", group = "[T]ree" },
|
||||
{ "<leader>o", group = "[O]verseer" },
|
||||
{ "<leader>h", group = "[H]arpoon" },
|
||||
{ "<leader>|", group = "[|] Copilot" },
|
||||
},
|
||||
copilot = {
|
||||
{ "<leader>||", "<cmd>Copilot toggle<cr>", desc = "[||] Toggle Copilot", mode = "n" },
|
||||
{
|
||||
"<leader>|t",
|
||||
"<cmd>Copilot suggestion toggle_auto_trigger<cr>",
|
||||
desc = "[|] [T]oggle inline suggestions",
|
||||
mode = "n",
|
||||
},
|
||||
{ "<leader>|p", "<cmd>Copilot panel<cr>", desc = "[|] [P]anel", mode = "n" },
|
||||
},
|
||||
harpoon = {
|
||||
{
|
||||
"<leader>ha",
|
||||
function()
|
||||
require("harpoon"):list():add()
|
||||
end,
|
||||
desc = "[H]arpoon [A]dd file",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>hq",
|
||||
function()
|
||||
local harpoon = require("harpoon")
|
||||
harpoon.ui:toggle_quick_menu(harpoon:list())
|
||||
end,
|
||||
desc = "[H]arpoon [Q]uick menu",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<C-h>",
|
||||
function()
|
||||
require("harpoon"):list():select(1)
|
||||
end,
|
||||
desc = "Harpoon file 1",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<C-j>",
|
||||
function()
|
||||
require("harpoon"):list():select(2)
|
||||
end,
|
||||
desc = "Harpoon file 2",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<C-k>",
|
||||
function()
|
||||
require("harpoon"):list():select(3)
|
||||
end,
|
||||
desc = "Harpoon file 3",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<C-l>",
|
||||
function()
|
||||
require("harpoon"):list():select(4)
|
||||
end,
|
||||
desc = "Harpoon file 4",
|
||||
mode = "n",
|
||||
},
|
||||
},
|
||||
lazygit = {
|
||||
{ "<leader>l", "<cmd>LazyGit<cr>", desc = "[L]azyGit", mode = "n" },
|
||||
},
|
||||
neogen = {
|
||||
{
|
||||
"<Leader>gd",
|
||||
":lua require('neogen').generate()<CR>",
|
||||
desc = "[G]enerate [D]ocumentation",
|
||||
mode = "n",
|
||||
},
|
||||
},
|
||||
neotree = {
|
||||
{
|
||||
"<leader>tt",
|
||||
function()
|
||||
vim.api.nvim_command("Neotree toggle")
|
||||
end,
|
||||
desc = "[T]ree [T]oggle",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>ts",
|
||||
function()
|
||||
vim.api.nvim_command("Neotree show")
|
||||
end,
|
||||
desc = "[T]ree [S]how",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>tc",
|
||||
function()
|
||||
vim.api.nvim_command("Neotree close")
|
||||
end,
|
||||
desc = "[T]ree [C]lose",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>tf",
|
||||
function()
|
||||
vim.api.nvim_command("Neotree focus")
|
||||
end,
|
||||
desc = "[T]ree [F]ocus",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>tg",
|
||||
function()
|
||||
vim.api.nvim_command("Neotree git_status")
|
||||
end,
|
||||
desc = "[T]ree [G]it Status",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>tb",
|
||||
function()
|
||||
vim.api.nvim_command("Neotree buffers")
|
||||
end,
|
||||
desc = "[T]ree [B]uffers",
|
||||
mode = "n",
|
||||
},
|
||||
},
|
||||
oil = {
|
||||
{ "<leader>te", vim.cmd.Oil, desc = "[T]ree [E]dit", mode = "n" },
|
||||
},
|
||||
overseer = {
|
||||
{ "<leader>ob", vim.cmd.OverseerBuild, desc = "[O]verseer [B]uild", mode = "n" },
|
||||
{ "<leader>oc", vim.cmd.OverseerRunCmd, desc = "[O]verseer Run [C]ommand", mode = "n" },
|
||||
{ "<leader>or", vim.cmd.OverseerRun, desc = "[O]verseer [R]un", mode = "n" },
|
||||
{ "<leader>ot", vim.cmd.OverseerToggle, desc = "[O]verseer [T]oggle", mode = "n" },
|
||||
},
|
||||
precognition = {
|
||||
{
|
||||
"<leader>p",
|
||||
function()
|
||||
if require("precognition").toggle() then
|
||||
vim.notify("Precognition ON")
|
||||
else
|
||||
vim.notify("Precognition OFF")
|
||||
end
|
||||
end,
|
||||
desc = "[P]recognition",
|
||||
mode = "n",
|
||||
},
|
||||
},
|
||||
telescope = function(telescope_builtin)
|
||||
return {
|
||||
{
|
||||
"<leader>sh",
|
||||
telescope_builtin.help_tags,
|
||||
desc = "[S]earch [H]elp",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>sk",
|
||||
telescope_builtin.keymaps,
|
||||
desc = "[S]earch [K]eymaps",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>sf",
|
||||
telescope_builtin.find_files,
|
||||
desc = "[S]earch [F]iles",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>sb",
|
||||
telescope_builtin.find_files,
|
||||
desc = "[S]earch file [B]rowser",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>ss",
|
||||
telescope_builtin.builtin,
|
||||
desc = "[S]earch [S]elect Telescope",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>sw",
|
||||
telescope_builtin.grep_string,
|
||||
desc = "[S]earch current [W]ord",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>sg",
|
||||
telescope_builtin.live_grep,
|
||||
desc = "[S]earch by [G]rep",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>sd",
|
||||
telescope_builtin.diagnostics,
|
||||
desc = "[S]earch [D]iagnostics",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>sr",
|
||||
telescope_builtin.resume,
|
||||
desc = "[S]earch [R]esume",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>s.",
|
||||
telescope_builtin.oldfiles,
|
||||
desc = '[S]earch Recent Files ("." for repeat)',
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader><leader>",
|
||||
telescope_builtin.buffers,
|
||||
desc = "[ ] Find existing buffers",
|
||||
mode = "n",
|
||||
},
|
||||
-- Slightly advanced example of overriding default behavior and theme
|
||||
{
|
||||
"<leader>/",
|
||||
function()
|
||||
-- You can pass additional configuration to telescope to change theme, layout, etc.
|
||||
telescope_builtin.current_buffer_fuzzy_find(
|
||||
require("telescope.themes").get_dropdown({
|
||||
winblend = 10,
|
||||
previewer = false,
|
||||
})
|
||||
)
|
||||
end,
|
||||
desc = "[/] Fuzzily search in current buffer",
|
||||
mode = "n",
|
||||
},
|
||||
-- Also possible to pass additional configuration options.
|
||||
-- See `:help telescope.builtin.live_grep()` for information about particular keys
|
||||
{
|
||||
"<leader>s/",
|
||||
function()
|
||||
telescope_builtin.live_grep({
|
||||
grep_open_files = true,
|
||||
prompt_title = "Live Grep in Open Files",
|
||||
})
|
||||
end,
|
||||
desc = "[S]earch [/] in Open Files",
|
||||
mode = "n",
|
||||
},
|
||||
-- Shortcut for searching your neovim configuration files
|
||||
{
|
||||
"<leader>sn",
|
||||
function()
|
||||
telescope_builtin.find_files({ cwd = vim.fn.stdpath("config") })
|
||||
end,
|
||||
desc = "[S]earch [N]eovim files",
|
||||
mode = "n",
|
||||
},
|
||||
}
|
||||
end,
|
||||
}
|
||||
Reference in New Issue
Block a user