Initial commit
authorLukas Krickl <lukas@krickl.dev>
Thu, 27 Jul 2023 04:31:46 +0000 (06:31 +0200)
committerLukas Krickl <lukas@krickl.dev>
Thu, 27 Jul 2023 04:31:46 +0000 (06:31 +0200)
21 files changed:
.gitignore [new file with mode: 0644]
README.md [new file with mode: 0644]
nvim/init.lua [new file with mode: 0644]
nvim/lua/main/init.lua [new file with mode: 0644]
nvim/lua/main/lazy.lua [new file with mode: 0644]
nvim/lua/main/remaps.lua [new file with mode: 0644]
nvim/lua/plugin/fugitive.lua [new file with mode: 0644]
nvim/lua/plugin/harpoon.lua [new file with mode: 0644]
nvim/lua/plugin/init.lua [new file with mode: 0644]
nvim/lua/plugin/lspzero.lua [new file with mode: 0644]
nvim/lua/plugin/lualine.lua [new file with mode: 0644]
nvim/lua/plugin/mason.lua [new file with mode: 0644]
nvim/lua/plugin/notify.lua [new file with mode: 0644]
nvim/lua/plugin/persistence.lua [new file with mode: 0644]
nvim/lua/plugin/telescope.lua [new file with mode: 0644]
nvim/lua/plugin/todo.lua [new file with mode: 0644]
nvim/lua/plugin/toggleterm.lua [new file with mode: 0644]
nvim/lua/plugin/treesitter.lua [new file with mode: 0644]
nvim/lua/plugin/trouble.lua [new file with mode: 0644]
nvim/lua/plugin/undotree.lua [new file with mode: 0644]
nvim/lua/plugin/yanky.lua [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..e033bc6
--- /dev/null
@@ -0,0 +1 @@
+lazy-lock.json
diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..c75a80f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+ # dotfiles repo 
+
+ This is a public version of my dotfiles.
diff --git a/nvim/init.lua b/nvim/init.lua
new file mode 100644 (file)
index 0000000..9fb386c
--- /dev/null
@@ -0,0 +1,2 @@
+require("main")
+require("plugin")
diff --git a/nvim/lua/main/init.lua b/nvim/lua/main/init.lua
new file mode 100644 (file)
index 0000000..9247ee1
--- /dev/null
@@ -0,0 +1,30 @@
+require("main.lazy")
+require("main.remaps")
+
+vim.opt.termguicolors = true
+vim.cmd [[colorscheme tokyonight]]
+vim.wo.number = true
+vim.wo.relativenumber = true
+vim.opt.clipboard = 'unnamedplus'
+
+vim.o.expandtab = true
+vim.o.smartindent = true
+vim.o.tabstop = 2
+vim.o.shiftwidth = 2
+
+vim.opt.hlsearch = false
+vim.opt.incsearch = true
+
+vim.o.autoread = true
+vim.api.nvim_create_autocmd({ "BufEnter", "CursorHold", "CursorHoldI", "FocusGained" }, {
+  command = "if mode() != 'c' | checktime | endif",
+  pattern = { "*" },
+})
+
+vim.opt.updatetime = 50
+
+vim.opt.signcolumn = "yes"
+-- vim.opt.colorcolumn = "80"
+
+vim.opt.spelllang = 'en_us'
+vim.opt.spell = false
diff --git a/nvim/lua/main/lazy.lua b/nvim/lua/main/lazy.lua
new file mode 100644 (file)
index 0000000..8d77c20
--- /dev/null
@@ -0,0 +1,88 @@
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not vim.loop.fs_stat(lazypath) then
+  vim.fn.system({
+    "git",
+    "clone",
+    "--filter=blob:none",
+    "https://github.com/folke/lazy.nvim.git",
+    "--branch=stable", -- latest stable release
+    lazypath,
+  })
+end
+vim.opt.rtp:prepend(lazypath)
+
+plugins = {
+  {
+    'nvim-telescope/telescope.nvim',
+    dependencies = { 'nvim-lua/plenary.nvim' },
+    lazy = false
+  },
+  {
+    "nvim-treesitter/nvim-treesitter",
+    build = ":TSUpdate",
+    lazy = false
+  },
+  {
+    "folke/tokyonight.nvim",
+    lazy = false,
+    priority = 1000,
+    opts = {},
+  },
+  {
+    "nvim-lua/plenary.nvim",
+    lazy = false
+  },
+  {
+    "ThePrimeagen/harpoon",
+    lazy = false
+  },
+  { 'akinsho/toggleterm.nvim', version = "*", config = true, lazy = false },
+  { "gbprod/yanky.nvim",       lazy = false },
+  { "mbbill/undotree",         lazy = false },
+  { "tpope/vim-fugitive",      lazy = false },
+  {
+    "folke/todo-comments.nvim",
+    dependencies = { "nvim-lua/plenary.nvim" },
+    opts = {},
+    lazy = false
+  },
+  {
+    "folke/trouble.nvim",
+    dependencies = { "nvim-tree/nvim-web-devicons" },
+    lazy = false
+  },
+  { "rcarriga/nvim-notify", lazy = false },
+  {
+    'VonHeikemen/lsp-zero.nvim',
+    branch = 'v2.x',
+    dependencies = {
+      -- LSP Support
+      { 'neovim/nvim-lspconfig' }, -- Required
+      {                            -- Optional
+        'williamboman/mason.nvim',
+        build = function()
+          pcall(vim.api.nvim_command, 'MasonUpdate')
+        end,
+      },
+      { 'williamboman/mason-lspconfig.nvim' }, -- Optional
+
+      -- Autocompletion
+      { 'hrsh7th/nvim-cmp' },     -- Required
+      { 'hrsh7th/cmp-nvim-lsp' }, -- Required
+      { 'L3MON4D3/LuaSnip' },     -- Required
+    },
+
+  },
+  {
+    'nvim-lualine/lualine.nvim',
+    requires = { 'nvim-tree/nvim-web-devicons', opt = true }
+  },
+  {
+    "folke/persistence.nvim",
+    event = "BufReadPre", -- this will only start session saving when an actual file was opened
+    opts = {
+    }
+  }
+}
+
+require("lazy").setup(plugins)
diff --git a/nvim/lua/main/remaps.lua b/nvim/lua/main/remaps.lua
new file mode 100644 (file)
index 0000000..bbf6ca2
--- /dev/null
@@ -0,0 +1,2 @@
+vim.g.mapleader = " "
+vim.keymap.set("n", "<leader>fv", vim.cmd.Ex)
diff --git a/nvim/lua/plugin/fugitive.lua b/nvim/lua/plugin/fugitive.lua
new file mode 100644 (file)
index 0000000..d3855f3
--- /dev/null
@@ -0,0 +1 @@
+vim.keymap.set("n", "<leader>gs", vim.cmd.Git) 
diff --git a/nvim/lua/plugin/harpoon.lua b/nvim/lua/plugin/harpoon.lua
new file mode 100644 (file)
index 0000000..204b04a
--- /dev/null
@@ -0,0 +1,8 @@
+local mark = require("harpoon.mark")
+local ui = require("harpoon.ui")
+
+vim.keymap.set("n", "<leader>ha", mark.add_file)
+vim.keymap.set("n", "<C-e>", ui.toggle_quick_menu)
+
+vim.keymap.set("n", "<leader>hn", function() ui.nav_next() end)
+vim.keymap.set("n", "<leader>hp", function() ui.nav_prev() end)
diff --git a/nvim/lua/plugin/init.lua b/nvim/lua/plugin/init.lua
new file mode 100644 (file)
index 0000000..0dc65f3
--- /dev/null
@@ -0,0 +1,14 @@
+require("plugin.telescope")
+require("plugin.treesitter")
+require("plugin.harpoon")
+require("plugin.toggleterm")
+require("plugin.yanky")
+require("plugin.undotree")
+require("plugin.fugitive")
+require("plugin.todo")
+require("plugin.trouble")
+require("plugin.notify")
+require("plugin.mason")
+require("plugin.lspzero")
+require("plugin.lualine")
+require("plugin.persistence")
diff --git a/nvim/lua/plugin/lspzero.lua b/nvim/lua/plugin/lspzero.lua
new file mode 100644 (file)
index 0000000..196ebc2
--- /dev/null
@@ -0,0 +1,27 @@
+local lsp = require('lsp-zero').preset(
+  {
+    float_border = 'rounded',
+    call_servers = 'local',
+    configure_diagnostics = true,
+    setup_servers_on_start = true,
+    set_lsp_keymaps = false,
+    manage_nvim_cmp = {
+      set_sources = 'lsp',
+      set_basic_mappings = true,
+      set_extra_mappings = true,
+      use_luasnip = true,
+      set_format = true,
+      documentation_window = true,
+    }
+  }
+)
+
+lsp.on_attach(function(client, bufnr)
+  -- see :help lsp-zero-keybindings
+  -- to learn the available actions
+  lsp.default_keymaps({ buffer = bufnr })
+end)
+
+vim.cmd [[autocmd BufWritePre * lua vim.lsp.buf.format()]]
+
+lsp.setup()
diff --git a/nvim/lua/plugin/lualine.lua b/nvim/lua/plugin/lualine.lua
new file mode 100644 (file)
index 0000000..90e6db2
--- /dev/null
@@ -0,0 +1 @@
+require('lualine').setup()
diff --git a/nvim/lua/plugin/mason.lua b/nvim/lua/plugin/mason.lua
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/nvim/lua/plugin/notify.lua b/nvim/lua/plugin/notify.lua
new file mode 100644 (file)
index 0000000..8996ae5
--- /dev/null
@@ -0,0 +1,3 @@
+vim.notify = require("notify")
+-- require("telescope").load_extension("notify")
+-- require('telescope').extensions.notify.notify({})
diff --git a/nvim/lua/plugin/persistence.lua b/nvim/lua/plugin/persistence.lua
new file mode 100644 (file)
index 0000000..fa55ec6
--- /dev/null
@@ -0,0 +1 @@
+vim.api.nvim_set_keymap("n", "<leader>qs", [[<cmd>lua require("persistence").load()<cr>]], {})
diff --git a/nvim/lua/plugin/telescope.lua b/nvim/lua/plugin/telescope.lua
new file mode 100644 (file)
index 0000000..21d2b60
--- /dev/null
@@ -0,0 +1,19 @@
+local builtin = require('telescope.builtin')
+vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
+vim.keymap.set('n', '<leader>fg', builtin.git_files, {})
+vim.keymap.set('n', '<leader>fs', builtin.live_grep, {})
+vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
+
+local actions = require("telescope.actions")
+local trouble = require("trouble.providers.telescope")
+
+local telescope = require("telescope")
+
+telescope.setup {
+  defaults = {
+    mappings = {
+      i = { ["<c-t>"] = trouble.open_with_trouble },
+      n = { ["<c-t>"] = trouble.open_with_trouble },
+    },
+  },
+}
diff --git a/nvim/lua/plugin/todo.lua b/nvim/lua/plugin/todo.lua
new file mode 100644 (file)
index 0000000..5cd4c30
--- /dev/null
@@ -0,0 +1,15 @@
+vim.keymap.set("n", "]t", function()
+  require("todo-comments").jump_next()
+end, { desc = "Next todo comment" })
+
+vim.keymap.set("n", "[t", function()
+  require("todo-comments").jump_prev()
+end, { desc = "Previous todo comment" })
+
+-- You can also specify a list of valid jump keywords
+
+vim.keymap.set("n", "]t", function()
+  require("todo-comments").jump_next({keywords = { "ERROR", "WARNING" }})
+end, { desc = "Next error/warning todo comment" }) 
+
+vim.keymap.set("n", "<leader>td", ":TodoTelescope")
diff --git a/nvim/lua/plugin/toggleterm.lua b/nvim/lua/plugin/toggleterm.lua
new file mode 100644 (file)
index 0000000..476e9cd
--- /dev/null
@@ -0,0 +1,6 @@
+require("toggleterm").setup {
+  open_mapping = [[<c-t>]],
+  insert_mappings = true,
+  termina_mappings = true,
+  direction = "float"
+}
diff --git a/nvim/lua/plugin/treesitter.lua b/nvim/lua/plugin/treesitter.lua
new file mode 100644 (file)
index 0000000..c66f626
--- /dev/null
@@ -0,0 +1,41 @@
+require'nvim-treesitter.configs'.setup {
+  -- A list of parser names, or "all" (the five listed parsers should always be installed)
+  ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "rust", "python", "javascript", "typescript" },
+
+  -- Install parsers synchronously (only applied to `ensure_installed`)
+  sync_install = false,
+
+  -- Automatically install missing parsers when entering buffer
+  -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
+  auto_install = true,
+
+  -- List of parsers to ignore installing (for "all")
+  ignore_install = { "javascript" },
+
+  ---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
+  -- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
+
+  highlight = {
+    enable = true,
+
+    -- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
+    -- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
+    -- the name of the parser)
+    -- list of language that will be disabled
+    disable = { "c", "rust" },
+    -- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files
+    disable = function(lang, buf)
+        local max_filesize = 100 * 1024 -- 100 KB
+        local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
+        if ok and stats and stats.size > max_filesize then
+            return true
+        end
+    end,
+
+    -- Setting this to true will run `:h syntax` and tree-sitter at the same time.
+    -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
+    -- Using this option may slow down your editor, and you may see some duplicate highlights.
+    -- Instead of true it can also be a list of languages
+    additional_vim_regex_highlighting = false,
+  },
+}
diff --git a/nvim/lua/plugin/trouble.lua b/nvim/lua/plugin/trouble.lua
new file mode 100644 (file)
index 0000000..7ceff42
--- /dev/null
@@ -0,0 +1,6 @@
+vim.keymap.set("n", "<leader>xx", function() require("trouble").open() end)
+vim.keymap.set("n", "<leader>xw", function() require("trouble").open("workspace_diagnostics") end)
+vim.keymap.set("n", "<leader>xd", function() require("trouble").open("document_diagnostics") end)
+vim.keymap.set("n", "<leader>xl", function() require("trouble").open("quickfix") end)
+vim.keymap.set("n", "<leader>xq", function() require("trouble").open("loclist") end)
+vim.keymap.set("n", "gR", function() require("trouble").open("lsp_references") end)
diff --git a/nvim/lua/plugin/undotree.lua b/nvim/lua/plugin/undotree.lua
new file mode 100644 (file)
index 0000000..b6b9276
--- /dev/null
@@ -0,0 +1 @@
+vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
diff --git a/nvim/lua/plugin/yanky.lua b/nvim/lua/plugin/yanky.lua
new file mode 100644 (file)
index 0000000..9549964
--- /dev/null
@@ -0,0 +1,9 @@
+require("yanky").setup({
+  highlight = {
+    on_put = true,
+    on_yank = true,
+    timer = 200,
+  },
+})
+require("telescope").load_extension("yank_history")
+