aboutsummaryrefslogtreecommitdiff
path: root/lua/kickstart
diff options
context:
space:
mode:
Diffstat (limited to 'lua/kickstart')
-rw-r--r--lua/kickstart/health.lua51
-rw-r--r--lua/kickstart/plugins/autoformat.lua74
-rw-r--r--lua/kickstart/plugins/indent_line.lua9
3 files changed, 60 insertions, 74 deletions
diff --git a/lua/kickstart/health.lua b/lua/kickstart/health.lua
new file mode 100644
index 0000000..957204e
--- /dev/null
+++ b/lua/kickstart/health.lua
@@ -0,0 +1,51 @@
+--[[
+--
+-- This file is not required for your own configuration,
+-- but helps people determine if their system is setup correctly.
+--
+--]]
+
+local check_version = function()
+ if not vim.version.cmp then
+ vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", tostring(vim.version())))
+ return
+ end
+
+ if vim.version.cmp(vim.version(), { 0, 9, 4 }) >= 0 then
+ vim.health.ok(string.format("Neovim version is: '%s'", tostring(vim.version())))
+ else
+ vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", tostring(vim.version())))
+ 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/lua/kickstart/plugins/autoformat.lua b/lua/kickstart/plugins/autoformat.lua
deleted file mode 100644
index bc56b15..0000000
--- a/lua/kickstart/plugins/autoformat.lua
+++ /dev/null
@@ -1,74 +0,0 @@
--- autoformat.lua
---
--- Use your language server to automatically format your code on save.
--- Adds additional commands as well to manage the behavior
-
-return {
- 'neovim/nvim-lspconfig',
- config = function()
- -- Switch for controlling whether you want autoformatting.
- -- Use :KickstartFormatToggle to toggle autoformatting on or off
- local format_is_enabled = true
- vim.api.nvim_create_user_command('KickstartFormatToggle', function()
- format_is_enabled = not format_is_enabled
- print('Setting autoformatting to: ' .. tostring(format_is_enabled))
- end, {})
-
- -- Create an augroup that is used for managing our formatting autocmds.
- -- We need one augroup per client to make sure that multiple clients
- -- can attach to the same buffer without interfering with each other.
- local _augroups = {}
- local get_augroup = function(client)
- if not _augroups[client.id] then
- local group_name = 'kickstart-lsp-format-' .. client.name
- local id = vim.api.nvim_create_augroup(group_name, { clear = true })
- _augroups[client.id] = id
- end
-
- return _augroups[client.id]
- end
-
- -- Whenever an LSP attaches to a buffer, we will run this function.
- --
- -- See `:help LspAttach` for more information about this autocmd event.
- vim.api.nvim_create_autocmd('LspAttach', {
- group = vim.api.nvim_create_augroup('kickstart-lsp-attach-format', { clear = true }),
- -- This is where we attach the autoformatting for reasonable clients
- callback = function(args)
- local client_id = args.data.client_id
- local client = vim.lsp.get_client_by_id(client_id)
- local bufnr = args.buf
-
- -- Only attach to clients that support document formatting
- if not client.server_capabilities.documentFormattingProvider then
- return
- end
-
- -- Tsserver usually works poorly. Sorry you work with bad languages
- -- You can remove this line if you know what you're doing :)
- if client.name == 'tsserver' then
- return
- end
-
- -- Create an autocmd that will run *before* we save the buffer.
- -- Run the formatting command for the LSP that has just attached.
- vim.api.nvim_create_autocmd('BufWritePre', {
- group = get_augroup(client),
- buffer = bufnr,
- callback = function()
- if not format_is_enabled then
- return
- end
-
- vim.lsp.buf.format {
- async = false,
- filter = function(c)
- return c.id == client.id
- end,
- }
- end,
- })
- end,
- })
- end,
-}
diff --git a/lua/kickstart/plugins/indent_line.lua b/lua/kickstart/plugins/indent_line.lua
new file mode 100644
index 0000000..ed7f269
--- /dev/null
+++ b/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 = {},
+ },
+}