summaryrefslogtreecommitdiff
path: root/mac/.config/kickstart/lua
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-08-23 12:42:37 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-08-23 12:42:37 +0900
commit07d294425a98ee5d1e22d03e2b24ae2c76e487c0 (patch)
treea6818f0d64438c5fdb88b00a35d944f80c056213 /mac/.config/kickstart/lua
parent6fc28cdb3529ca8ee864cb5c41674cb0a4af72a1 (diff)
updates
Diffstat (limited to 'mac/.config/kickstart/lua')
-rw-r--r--mac/.config/kickstart/lua/custom/plugins/init.lua5
-rw-r--r--mac/.config/kickstart/lua/kickstart/health.lua52
-rw-r--r--mac/.config/kickstart/lua/kickstart/plugins/autopairs.lua8
-rw-r--r--mac/.config/kickstart/lua/kickstart/plugins/debug.lua148
-rw-r--r--mac/.config/kickstart/lua/kickstart/plugins/gitsigns.lua61
-rw-r--r--mac/.config/kickstart/lua/kickstart/plugins/indent_line.lua9
-rw-r--r--mac/.config/kickstart/lua/kickstart/plugins/lint.lua60
-rw-r--r--mac/.config/kickstart/lua/kickstart/plugins/neo-tree.lua25
8 files changed, 368 insertions, 0 deletions
diff --git a/mac/.config/kickstart/lua/custom/plugins/init.lua b/mac/.config/kickstart/lua/custom/plugins/init.lua
new file mode 100644
index 0000000..be0eb9d
--- /dev/null
+++ b/mac/.config/kickstart/lua/custom/plugins/init.lua
@@ -0,0 +1,5 @@
+-- You can add your own plugins here or in other files in this directory!
+-- I promise not to create any merge conflicts in this directory :)
+--
+-- See the kickstart.nvim README for more information
+return {}
diff --git a/mac/.config/kickstart/lua/kickstart/health.lua b/mac/.config/kickstart/lua/kickstart/health.lua
new file mode 100644
index 0000000..b59d086
--- /dev/null
+++ b/mac/.config/kickstart/lua/kickstart/health.lua
@@ -0,0 +1,52 @@
+--[[
+--
+-- This file is not required for your own configuration,
+-- but helps people determine if their system is setup correctly.
+--
+--]]
+
+local check_version = function()
+ local verstr = tostring(vim.version())
+ if not vim.version.ge then
+ vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))
+ return
+ end
+
+ if vim.version.ge(vim.version(), '0.10-dev') then
+ vim.health.ok(string.format("Neovim version is: '%s'", verstr))
+ else
+ vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))
+ end
+end
+
+local check_external_reqs = function()
+ -- Basic utils: `git`, `make`, `unzip`
+ for _, exe in ipairs { 'git', 'make', 'unzip', 'rg' } do
+ local is_executable = vim.fn.executable(exe) == 1
+ if is_executable then
+ vim.health.ok(string.format("Found executable: '%s'", exe))
+ else
+ vim.health.warn(string.format("Could not find executable: '%s'", exe))
+ end
+ end
+
+ return true
+end
+
+return {
+ check = function()
+ vim.health.start 'kickstart.nvim'
+
+ vim.health.info [[NOTE: Not every warning is a 'must-fix' in `:checkhealth`
+
+ Fix only warnings for plugins and languages you intend to use.
+ Mason will give warnings for languages that are not installed.
+ You do not need to install, unless you want to use those languages!]]
+
+ local uv = vim.uv or vim.loop
+ vim.health.info('System Information: ' .. vim.inspect(uv.os_uname()))
+
+ check_version()
+ check_external_reqs()
+ end,
+}
diff --git a/mac/.config/kickstart/lua/kickstart/plugins/autopairs.lua b/mac/.config/kickstart/lua/kickstart/plugins/autopairs.lua
new file mode 100644
index 0000000..386d392
--- /dev/null
+++ b/mac/.config/kickstart/lua/kickstart/plugins/autopairs.lua
@@ -0,0 +1,8 @@
+-- autopairs
+-- https://github.com/windwp/nvim-autopairs
+
+return {
+ 'windwp/nvim-autopairs',
+ event = 'InsertEnter',
+ opts = {},
+}
diff --git a/mac/.config/kickstart/lua/kickstart/plugins/debug.lua b/mac/.config/kickstart/lua/kickstart/plugins/debug.lua
new file mode 100644
index 0000000..8e332bf
--- /dev/null
+++ b/mac/.config/kickstart/lua/kickstart/plugins/debug.lua
@@ -0,0 +1,148 @@
+-- debug.lua
+--
+-- Shows how to use the DAP plugin to debug your code.
+--
+-- Primarily focused on configuring the debugger for Go, but can
+-- be extended to other languages as well. That's why it's called
+-- kickstart.nvim and not kitchen-sink.nvim ;)
+
+return {
+ -- NOTE: Yes, you can install new plugins here!
+ 'mfussenegger/nvim-dap',
+ -- NOTE: And you can specify dependencies as well
+ dependencies = {
+ -- Creates a beautiful debugger UI
+ 'rcarriga/nvim-dap-ui',
+
+ -- Required dependency for nvim-dap-ui
+ 'nvim-neotest/nvim-nio',
+
+ -- Installs the debug adapters for you
+ 'mason-org/mason.nvim',
+ 'jay-babu/mason-nvim-dap.nvim',
+
+ -- Add your own debuggers here
+ 'leoluz/nvim-dap-go',
+ },
+ keys = {
+ -- Basic debugging keymaps, feel free to change to your liking!
+ {
+ '<F5>',
+ function()
+ require('dap').continue()
+ end,
+ desc = 'Debug: Start/Continue',
+ },
+ {
+ '<F1>',
+ function()
+ require('dap').step_into()
+ end,
+ desc = 'Debug: Step Into',
+ },
+ {
+ '<F2>',
+ function()
+ require('dap').step_over()
+ end,
+ desc = 'Debug: Step Over',
+ },
+ {
+ '<F3>',
+ function()
+ require('dap').step_out()
+ end,
+ desc = 'Debug: Step Out',
+ },
+ {
+ '<leader>b',
+ function()
+ require('dap').toggle_breakpoint()
+ end,
+ desc = 'Debug: Toggle Breakpoint',
+ },
+ {
+ '<leader>B',
+ function()
+ require('dap').set_breakpoint(vim.fn.input 'Breakpoint condition: ')
+ end,
+ desc = 'Debug: Set Breakpoint',
+ },
+ -- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception.
+ {
+ '<F7>',
+ function()
+ require('dapui').toggle()
+ end,
+ desc = 'Debug: See last session result.',
+ },
+ },
+ config = function()
+ local dap = require 'dap'
+ local dapui = require 'dapui'
+
+ require('mason-nvim-dap').setup {
+ -- Makes a best effort to setup the various debuggers with
+ -- reasonable debug configurations
+ automatic_installation = true,
+
+ -- You can provide additional configuration to the handlers,
+ -- see mason-nvim-dap README for more information
+ handlers = {},
+
+ -- You'll need to check that you have the required things installed
+ -- online, please don't ask me how to install them :)
+ ensure_installed = {
+ -- Update this to ensure that you have the debuggers for the langs you want
+ 'delve',
+ },
+ }
+
+ -- Dap UI setup
+ -- For more information, see |:help nvim-dap-ui|
+ dapui.setup {
+ -- Set icons to characters that are more likely to work in every terminal.
+ -- Feel free to remove or use ones that you like more! :)
+ -- Don't feel like these are good choices.
+ icons = { expanded = '▾', collapsed = '▸', current_frame = '*' },
+ controls = {
+ icons = {
+ pause = '⏸',
+ play = '▶',
+ step_into = '⏎',
+ step_over = '⏭',
+ step_out = '⏮',
+ step_back = 'b',
+ run_last = '▶▶',
+ terminate = '⏹',
+ disconnect = '⏏',
+ },
+ },
+ }
+
+ -- Change breakpoint icons
+ -- vim.api.nvim_set_hl(0, 'DapBreak', { fg = '#e51400' })
+ -- vim.api.nvim_set_hl(0, 'DapStop', { fg = '#ffcc00' })
+ -- local breakpoint_icons = vim.g.have_nerd_font
+ -- and { Breakpoint = '', BreakpointCondition = '', BreakpointRejected = '', LogPoint = '', Stopped = '' }
+ -- or { Breakpoint = '●', BreakpointCondition = '⊜', BreakpointRejected = '⊘', LogPoint = '◆', Stopped = '⭔' }
+ -- for type, icon in pairs(breakpoint_icons) do
+ -- local tp = 'Dap' .. type
+ -- local hl = (type == 'Stopped') and 'DapStop' or 'DapBreak'
+ -- vim.fn.sign_define(tp, { text = icon, texthl = hl, numhl = hl })
+ -- end
+
+ dap.listeners.after.event_initialized['dapui_config'] = dapui.open
+ dap.listeners.before.event_terminated['dapui_config'] = dapui.close
+ dap.listeners.before.event_exited['dapui_config'] = dapui.close
+
+ -- Install golang specific config
+ require('dap-go').setup {
+ delve = {
+ -- On Windows delve must be run attached or it crashes.
+ -- See https://github.com/leoluz/nvim-dap-go/blob/main/README.md#configuring
+ detached = vim.fn.has 'win32' == 0,
+ },
+ }
+ end,
+}
diff --git a/mac/.config/kickstart/lua/kickstart/plugins/gitsigns.lua b/mac/.config/kickstart/lua/kickstart/plugins/gitsigns.lua
new file mode 100644
index 0000000..cbbd22d
--- /dev/null
+++ b/mac/.config/kickstart/lua/kickstart/plugins/gitsigns.lua
@@ -0,0 +1,61 @@
+-- Adds git related signs to the gutter, as well as utilities for managing changes
+-- NOTE: gitsigns is already included in init.lua but contains only the base
+-- config. This will add also the recommended keymaps.
+
+return {
+ {
+ 'lewis6991/gitsigns.nvim',
+ opts = {
+ on_attach = function(bufnr)
+ local gitsigns = require 'gitsigns'
+
+ local function map(mode, l, r, opts)
+ opts = opts or {}
+ opts.buffer = bufnr
+ vim.keymap.set(mode, l, r, opts)
+ end
+
+ -- Navigation
+ map('n', ']c', function()
+ if vim.wo.diff then
+ vim.cmd.normal { ']c', bang = true }
+ else
+ gitsigns.nav_hunk 'next'
+ end
+ end, { desc = 'Jump to next git [c]hange' })
+
+ map('n', '[c', function()
+ if vim.wo.diff then
+ vim.cmd.normal { '[c', bang = true }
+ else
+ gitsigns.nav_hunk 'prev'
+ end
+ end, { desc = 'Jump to previous git [c]hange' })
+
+ -- Actions
+ -- visual mode
+ map('v', '<leader>hs', function()
+ gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' }
+ end, { desc = 'git [s]tage hunk' })
+ map('v', '<leader>hr', function()
+ gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' }
+ end, { desc = 'git [r]eset hunk' })
+ -- normal mode
+ map('n', '<leader>hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' })
+ map('n', '<leader>hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' })
+ map('n', '<leader>hS', gitsigns.stage_buffer, { desc = 'git [S]tage buffer' })
+ map('n', '<leader>hu', gitsigns.stage_hunk, { desc = 'git [u]ndo stage hunk' })
+ map('n', '<leader>hR', gitsigns.reset_buffer, { desc = 'git [R]eset buffer' })
+ map('n', '<leader>hp', gitsigns.preview_hunk, { desc = 'git [p]review hunk' })
+ map('n', '<leader>hb', gitsigns.blame_line, { desc = 'git [b]lame line' })
+ map('n', '<leader>hd', gitsigns.diffthis, { desc = 'git [d]iff against index' })
+ map('n', '<leader>hD', function()
+ gitsigns.diffthis '@'
+ end, { desc = 'git [D]iff against last commit' })
+ -- Toggles
+ map('n', '<leader>tb', gitsigns.toggle_current_line_blame, { desc = '[T]oggle git show [b]lame line' })
+ map('n', '<leader>tD', gitsigns.preview_hunk_inline, { desc = '[T]oggle git show [D]eleted' })
+ end,
+ },
+ },
+}
diff --git a/mac/.config/kickstart/lua/kickstart/plugins/indent_line.lua b/mac/.config/kickstart/lua/kickstart/plugins/indent_line.lua
new file mode 100644
index 0000000..ed7f269
--- /dev/null
+++ b/mac/.config/kickstart/lua/kickstart/plugins/indent_line.lua
@@ -0,0 +1,9 @@
+return {
+ { -- Add indentation guides even on blank lines
+ 'lukas-reineke/indent-blankline.nvim',
+ -- Enable `lukas-reineke/indent-blankline.nvim`
+ -- See `:help ibl`
+ main = 'ibl',
+ opts = {},
+ },
+}
diff --git a/mac/.config/kickstart/lua/kickstart/plugins/lint.lua b/mac/.config/kickstart/lua/kickstart/plugins/lint.lua
new file mode 100644
index 0000000..dec42f0
--- /dev/null
+++ b/mac/.config/kickstart/lua/kickstart/plugins/lint.lua
@@ -0,0 +1,60 @@
+return {
+
+ { -- Linting
+ 'mfussenegger/nvim-lint',
+ event = { 'BufReadPre', 'BufNewFile' },
+ config = function()
+ local lint = require 'lint'
+ lint.linters_by_ft = {
+ markdown = { 'markdownlint' },
+ }
+
+ -- To allow other plugins to add linters to require('lint').linters_by_ft,
+ -- instead set linters_by_ft like this:
+ -- lint.linters_by_ft = lint.linters_by_ft or {}
+ -- lint.linters_by_ft['markdown'] = { 'markdownlint' }
+ --
+ -- However, note that this will enable a set of default linters,
+ -- which will cause errors unless these tools are available:
+ -- {
+ -- clojure = { "clj-kondo" },
+ -- dockerfile = { "hadolint" },
+ -- inko = { "inko" },
+ -- janet = { "janet" },
+ -- json = { "jsonlint" },
+ -- markdown = { "vale" },
+ -- rst = { "vale" },
+ -- ruby = { "ruby" },
+ -- terraform = { "tflint" },
+ -- text = { "vale" }
+ -- }
+ --
+ -- You can disable the default linters by setting their filetypes to nil:
+ -- lint.linters_by_ft['clojure'] = nil
+ -- lint.linters_by_ft['dockerfile'] = nil
+ -- lint.linters_by_ft['inko'] = nil
+ -- lint.linters_by_ft['janet'] = nil
+ -- lint.linters_by_ft['json'] = nil
+ -- lint.linters_by_ft['markdown'] = nil
+ -- lint.linters_by_ft['rst'] = nil
+ -- lint.linters_by_ft['ruby'] = nil
+ -- lint.linters_by_ft['terraform'] = nil
+ -- lint.linters_by_ft['text'] = nil
+
+ -- Create autocommand which carries out the actual linting
+ -- on the specified events.
+ local lint_augroup = vim.api.nvim_create_augroup('lint', { clear = true })
+ vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWritePost', 'InsertLeave' }, {
+ group = lint_augroup,
+ callback = function()
+ -- Only run the linter in buffers that you can modify in order to
+ -- avoid superfluous noise, notably within the handy LSP pop-ups that
+ -- describe the hovered symbol using Markdown.
+ if vim.bo.modifiable then
+ lint.try_lint()
+ end
+ end,
+ })
+ end,
+ },
+}
diff --git a/mac/.config/kickstart/lua/kickstart/plugins/neo-tree.lua b/mac/.config/kickstart/lua/kickstart/plugins/neo-tree.lua
new file mode 100644
index 0000000..c706789
--- /dev/null
+++ b/mac/.config/kickstart/lua/kickstart/plugins/neo-tree.lua
@@ -0,0 +1,25 @@
+-- Neo-tree is a Neovim plugin to browse the file system
+-- https://github.com/nvim-neo-tree/neo-tree.nvim
+
+return {
+ 'nvim-neo-tree/neo-tree.nvim',
+ version = '*',
+ dependencies = {
+ 'nvim-lua/plenary.nvim',
+ 'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
+ 'MunifTanjim/nui.nvim',
+ },
+ lazy = false,
+ keys = {
+ { '\\', ':Neotree reveal<CR>', desc = 'NeoTree reveal', silent = true },
+ },
+ opts = {
+ filesystem = {
+ window = {
+ mappings = {
+ ['\\'] = 'close_window',
+ },
+ },
+ },
+ },
+}