-
Notifications
You must be signed in to change notification settings - Fork 1
feat: Enhance TypeScript/Lua DX #30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Replaces the legacy `.meowg1k/config.yaml` with the new root `.meowg1k.yml` to align with the latest tool version. This change centralizes and significantly enhances the AI development assistant's capabilities. The new configuration introduces comprehensive, project-specific prompts for Lua code review, plugin development, refactoring, and documentation. It also defines multiple Gemini model profiles (fast, smart, embeddings) and improves the `ask`, `commit`, and `pullRequest` workflows for meowvim development.
Improves the out-of-the-box experience for TypeScript and JavaScript by refining LSP, completion, and formatting configurations. Key changes include: - **tsserver**: - Adds an "Organize Imports" feature, available via `<leader>xo` and the `:LspOrganize` command. - Enables extensive inlay hints for parameter names, variable types, and more, providing richer inline context. - Disables the built-in LSP formatter, deferring to `conform.nvim` to respect project-local Prettier configurations. - Enables `updateImportsOnFileMove` for better refactoring support. - **nvim-cmp**: - Adds new completion sources for Lua (`nvim_lua`) and the command line (`cmdline`), improving the editing experience beyond just TS/JS. - Enhances the completion menu with source-specific icons for better readability. - **conform.nvim**: - Removes hardcoded `--tab-width` for Prettier, allowing it to use the settings from a project's `.prettierrc` file.
There was a problem hiding this 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 enhances TypeScript/JavaScript LSP configuration and improves nvim-cmp completion engine with additional sources and better completion behavior. The changes also migrate AI tooling configuration from .meowg1k/config.yaml to .meowg1k.yml and update plugin dependencies.
- Enhanced TypeScript LSP with organize imports functionality, extended inlay hints, and disabled formatting (delegated to conform.nvim)
- Improved nvim-cmp with cmdline completion, Lua API completion, spell checking, and refined completion confirmation behavior
- Migrated and expanded meowg1k AI configuration with Gemini models and comprehensive task definitions
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| lua/plugins/nvim-lspconfig.lua | Enhanced TypeScript LSP setup with organize imports command, comprehensive inlay hints configuration, and explicit filetype support |
| lua/plugins/nvim-cmp.lua | Added cmdline, nvim-lua, and spell completion sources; refined completion confirmation behavior and source prioritization |
| lua/plugins/conform.lua | Removed prettier/prettierd tab-width configuration (formatting delegated to project configs) |
| lazy-lock.json | Updated plugin versions including new completion sources and dependency updates |
| .meowg1k/config.yaml | Removed old AI tooling configuration file |
| .meowg1k.yml | Added comprehensive AI tooling configuration with Gemini models and detailed task definitions |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| vim.api.nvim_create_user_command("LspOrganize", function() | ||
| vim.lsp.buf.execute_command({ | ||
| command = "_typescript.organizeImports", | ||
| arguments = { vim.api.nvim_buf_get_name(0) }, | ||
| title = "", | ||
| }) | ||
| end, { desc = "Organize Imports" }) |
Copilot
AI
Oct 29, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The LspOrganize command is created every time on_attach is called for each TypeScript buffer, potentially creating duplicate commands. This should be created once globally, or checked for existence before creation to avoid duplication warnings.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot open a new pull request to apply changes based on this feedback
Summary
This pull request introduces significant developer experience improvements, focusing on TypeScript and Lua development within meowvim. It overhauls the
nvim-cmpconfiguration to provide richer, context-aware completions for the Neovim Lua API and command line, and dramatically enhances thetsserverLSP with advanced inlay hints and a dedicated "organize imports" feature. Additionally, it integrates a new, comprehensive.meowg1k.ymlconfiguration to provide powerful, project-specific AI assistance for tasks like code review, documentation, and commit generation.Motivation
Changes
Plugin Configuration
lua/plugins/nvim-cmp.lua:cmp-nvim-lua,cmp-cmdline, andcmp-spellto provide specialized completion sources.nvim_lua(for Neovim API),spell, andcmdline. Theneorgsource was removed as it is less commonly used.format_kindsfunction to display icons next to completion items, indicating their source (e.g., Copilot, LSP, Lua).nvim_luacompletions automatically for Lua files andcmdlinecompletions for the command-line window.lua/plugins/nvim-lspconfig.lua:tsserverconfiguration for TypeScript/JavaScript.<leader>xoand a user command:LspOrganizeto trigger the_typescript.organizeImportscode action, cleaning up import statements on demand.conform.nvimremains the single source of truth for formatting.lua/plugins/conform.lua:--tab-width 2argument forprettierandprettierd. This allows the formatters to respect project-local.prettierrcconfiguration files, providing more flexible and conventional behavior.Core Configuration
.meowg1k.yml: Added a new, comprehensive configuration file for themeowg1kAI tool. This file defines:gemini-flash,gemini-pro, andgemini-embeddings.ask,commit, andpullRequestgeneration..meowg1k/config.yaml: Removed the old, deprecated AI tool configuration file.