Skip to content

merge commits behind from the base repository#1969

Closed
morfize wants to merge 8 commits intonvim-lua:masterfrom
morfize:master
Closed

merge commits behind from the base repository#1969
morfize wants to merge 8 commits intonvim-lua:masterfrom
morfize:master

Conversation

@morfize
Copy link
Copy Markdown

@morfize morfize commented Mar 30, 2026


NOTE
Please verify that the base repository above has the intended destination!
Github by default opens Pull Requests against the parent of a forked repository.
If this is your personal fork and you didn't intend to open a PR for contribution
to the original project then adjust the base repository accordingly.


Copilot AI review requested due to automatic review settings March 30, 2026 03:25
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR significantly expands the Neovim (kickstart.nvim-based) configuration by enabling additional kickstart plugins, importing custom.plugins, and adding many new plugin specs plus language/tooling configuration (LSP, linting, Treesitter, filetype plugins).

Changes:

  • Reworked Neo-tree configuration and added related plugins (file operations + window picker).
  • Expanded lint/LSP/tooling setup (markdown/mdx/haskell/typst, mason tool installs) and modified Treesitter initialization.
  • Added many new lua/custom/plugins/*.lua plugin specs plus several after/ftplugin/* language-specific keymaps.

Reviewed changes

Copilot reviewed 37 out of 37 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
lua/kickstart/plugins/neo-tree.lua Replaced the simple Neo-tree spec with a large config and added extra plugin specs in the same module.
lua/kickstart/plugins/lint.lua Added mdx/haskell/typst lint mappings and customized markdownlint args.
init.lua Enabled multiple kickstart plugins, imported custom.plugins, added LSP server configs/tools, pinned telescope tag, and changed Treesitter setup.
lua/custom/plugins/init.lua Added global settings/keymaps/autocmds executed during plugin import.
lua/custom/plugins/zk-nvim.lua Added zk note-taking plugin config.
lua/custom/plugins/typst.lua Added Typst filetype plugin config.
lua/custom/plugins/typst-preview.lua Added Typst preview plugin spec.
lua/custom/plugins/typescript-tools.lua Added TypeScript tools plugin spec.
lua/custom/plugins/tree-sitter-d2.lua Added D2 Treesitter parser plugin spec.
lua/custom/plugins/toggleterm.lua Added ToggleTerm plugin spec.
lua/custom/plugins/tiny-inline-diagnostic.lua Added inline diagnostics plugin config and disabled native virtual_text.
lua/custom/plugins/snacks.lua Added snacks.nvim configuration with helper functions for key descriptions and dashboard mappings.
lua/custom/plugins/rustaceanvim.lua Added rustaceanvim plugin spec.
lua/custom/plugins/rose-pine.lua Added Rose Pine colorscheme plugin config.
lua/custom/plugins/render-markdown.lua Added render-markdown plugin spec and config.
lua/custom/plugins/peek.lua Added markdown preview plugin spec.
lua/custom/plugins/opencode.lua Added opencode.nvim plugin config and keymaps.
lua/custom/plugins/nvim-autopairs.lua Added nvim-autopairs plugin spec/config (custom).
lua/custom/plugins/nightfox.lua Added Nightfox colorscheme plugin config.
lua/custom/plugins/nerdy.lua Added nerdy.nvim plugin spec.
lua/custom/plugins/mcp-hub.lua Added mcphub.nvim plugin config.
lua/custom/plugins/lean.lua Added lean.nvim plugin spec/config.
lua/custom/plugins/im-select.lua Added input-method switching plugin config.
lua/custom/plugins/haskell-tools.lua Added haskell-tools.nvim plugin spec.
lua/custom/plugins/github-nvim-theme.lua Added GitHub theme plugin config.
lua/custom/plugins/d2-vim.lua Added d2-vim plugin config.
lua/custom/plugins/copilot.lua Added copilot.lua plugin config.
lua/custom/plugins/claudecode.lua Added claudecode.nvim plugin spec/config + keymaps.
lua/custom/plugins/ccc.lua Added ccc.nvim plugin config.
lua/custom/plugins/catpuccin.lua Added catppuccin theme plugin config.
lua/custom/plugins/bufferline.lua Added bufferline.nvim plugin spec/config.
lua/custom/plugins/bg.lua Added bg.nvim plugin spec.
lua/custom/plugins/better-escape.lua Added better-escape.nvim plugin config.
lua/custom/plugins/amp.lua Added amp.nvim plugin spec/config.
after/ftplugin/rust.lua Added Rust-specific keymaps (rustaceanvim).
after/ftplugin/markdown.lua Added zk-specific markdown keymaps for notebooks.
after/ftplugin/haskell.lua Added (commented-out) haskell-tools keymap examples.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

custom = {
doing = { raw = '[d]', rendered = ' ', highlight = 'RenderMarkdownTodo', scope_highlight = nil },
pending = { raw = '[p]', rendered = '󰥔 ', highlight = 'RenderMarkdownTodo', scope_highlight = nil },
asking = { raw = '[a]', rendered = '󱜺 ', highlight = 'RenderMarkDownTodo', scope_highlight = nil },
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The highlight group name RenderMarkDownTodo uses a different capitalization than the other RenderMarkdown... groups in this file (RenderMarkdownTodo, etc.). If this is meant to reference the same highlight group, fix the casing so it doesn't point at a non-existent group.

Suggested change
asking = { raw = '[a]', rendered = '󱜺 ', highlight = 'RenderMarkDownTodo', scope_highlight = nil },
asking = { raw = '[a]', rendered = '󱜺 ', highlight = 'RenderMarkdownTodo', scope_highlight = nil },

Copilot uses AI. Check for mistakes.
Comment on lines +716 to +717
-- capabilities = {},
-- settings = {},
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the rust_analyzer server config, setting cmd = {} and filetypes = {} overrides lspconfig defaults with empty lists, which will prevent the server from starting/attaching. Remove these keys (or set them to the real command/filetypes) so lspconfig can use its defaults.

Suggested change
-- capabilities = {},
-- settings = {},

Copilot uses AI. Check for mistakes.
'zbirenbaum/copilot.lua',
enabled = true,
event = 'InsertEnter',
requires = {
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

requires is not a lazy.nvim plugin-spec key (lazy uses dependencies). With requires here, copilot-lsp.nvim likely won't be installed/loaded and nes.enabled (and other features) may not work. Rename requires to dependencies.

Suggested change
requires = {
dependencies = {

Copilot uses AI. Check for mistakes.
Comment on lines 4 to 8
---@module 'lazy'
---@type LazySpec
return {
'nvim-neo-tree/neo-tree.nvim',
version = '*',
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This module now returns a list of plugin specs (outer table contains multiple tables). In Kickstart, require 'kickstart.plugins.neo-tree' is used as a single entry in lazy.setup, and other kickstart plugin modules return a single plugin spec table; returning a list here can cause lazy.nvim to treat it as one malformed spec (first element is a table, not a plugin string). Consider returning only the neo-tree spec and move the other two plugins into dependencies (or split them into their own kickstart plugin modules).

Copilot uses AI. Check for mistakes.
Comment on lines +8 to +13
local lint = require 'lint'
lint.linters_by_ft = {
markdown = { 'markdownlint' },
mdx = { 'markdownlint' },
haskell = { 'hlint' },
typ = { 'tinymist' },
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lint.linters_by_ft uses the filetype key typ, but the Typst plugins added in this PR are configured for filetype typst (see lua/custom/plugins/typst*.lua). As-is, Typst buffers won't trigger linting. Align the filetype key with the actual Typst filetype you intend to use (and keep it consistent with the LSP config).

Copilot uses AI. Check for mistakes.
workspace_folders = {},
copilot_model = '',
root_dir = function()
return vim.fs.dirname(vim.fs.find('.git', { upward = true })[1])
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

root_dir assumes vim.fs.find('.git', { upward = true })[1] always exists; outside a git repo this is nil and vim.fs.dirname(nil) will error. Add a fallback (e.g., return vim.loop.cwd() or nil) when no .git is found.

Suggested change
return vim.fs.dirname(vim.fs.find('.git', { upward = true })[1])
local git_dir = vim.fs.find('.git', { upward = true })[1]
if not git_dir then
return vim.loop.cwd()
end
return vim.fs.dirname(git_dir)

Copilot uses AI. Check for mistakes.
Comment on lines +4 to +5
enable = true,
ft = { 'd2', 'md' },
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lazy.nvim uses enabled (not enable) to toggle a plugin spec. With enable = true here, the field is ignored and may confuse future maintenance. Rename to enabled = true (or remove it, since true is the default).

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,22 @@
return {
'terrastruct/d2-vim',
enable = true,
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lazy.nvim uses enabled (not enable) for plugin enable/disable. enable = true here is ignored and could lead to confusion about whether the plugin is active. Rename to enabled = true (or drop it).

Suggested change
enable = true,
enabled = true,

Copilot uses AI. Check for mistakes.
opts = {
notify_on_error = false,
format_on_save = function(bufnr)
-- Disable "format_on_save lsp_fallback" for languages that don't
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tinymist is configured with filetypes = { 'typ' }, but Typst filetype elsewhere in this PR is typst (see lua/custom/plugins/typst*.lua) and linting also uses typ. This inconsistency will stop the LSP from attaching to Typst buffers. Use the correct filetype and keep it consistent across Typst plugins/lint/LSP.

Suggested change
filetypes = { 'typst' },

Copilot uses AI. Check for mistakes.
@@ -5,4 +5,124 @@

---@module 'lazy'
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vim.cmd 'language en_GB.UTF-8' can error on systems where that locale isn't installed, which would break startup. Consider guarding it (e.g., pcall) or making it conditional on vim.fn.has('multi_lang')/available locales.

Suggested change
---@module 'lazy'
if vim.fn.has 'multi_lang' == 1 then
pcall(vim.cmd, 'language en_GB.UTF-8')
end

Copilot uses AI. Check for mistakes.
@morfize morfize closed this Mar 30, 2026
@morfize
Copy link
Copy Markdown
Author

morfize commented Mar 30, 2026

mistakenly created.
Ignore this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants