{"repo": "brinkqiang/dmsystem", "files": {"docs/minuet-ai.nvim/README.md": {"b6ee43222f474e94ea17bf36505b1d2cbe55d423": {"t": 1785746394.4224534, "n": 4803, "h": "bf5014c6496c5266", "c": "\n# Minuet AI\n\nMinuet AI: Dance with Intelligence in Your Code 💃.\n\n`Minuet-ai` brings the grace and harmony of a minuet to your coding process.\nJust as dancers move during a minuet.\n\n# Features\n\n- AI-powered code completion with dual modes:\n - Specialized prompts and various enhancements for chat-based LLMs on code completion tasks.\n - Fill-in-the-middle (FIM) completion for compatible models (DeepSeek,\n Codestral, Qwen, and others).\n- Support for multiple AI providers (OpenAI, Claude, Gemini, Codestral, Ollama, and\n OpenAI-compatible services).\n- Customizable configuration options.\n- Streaming support to enable completion delivery even with slower LLMs.\n- Support `nvim-cmp`, `blink-cmp`, `virtual text` frontend.\n\n# Requirements\n\n- Neovim 0.10+.\n- [plenary.nvim](https://github.com/nvim-lua/plenary.nvim)\n- optional: [nvim-cmp](https://github.com/hrsh7th/nvim-cmp)\n- optional: [blink.cmp](https://github.com/Saghen/blink.cmp)\n- An API key for at least one of the supported AI providers\n\n# Installation\n\n**Lazy.nvim**:\n\n```lua\nspecs = {\n {\n 'milanglacier/minuet-ai.nvim',\n config = function()\n require('minuet').setup {\n -- Your configuration options here\n }\n end,\n },\n { 'nvim-lua/plenary.nvim' },\n -- optional, if you are using virtual-text frontend, nvim-cmp is not\n -- required.\n { 'hrsh7th/nvim-cmp' },\n -- optional, if you are using virtual-text frontend, blink is not required.\n { 'Saghen/blink.cmp' },\n}\n```\n\n**Rocks.nvim**:\n\n`Minuet` is available on luarocks.org. Simply run `Rocks install\nminuet-ai.nvim` to install it like any other luarocks package.\n\n**Setting up with virtual text**:\n\n```lua\nrequire('minuet').setup {\n virtualtext = {\n auto_trigger_ft = {},\n keymap = {\n -- accept whole completion\n accept = '',\n -- accept one line\n accept_line = '',\n -- accept n lines (prompts for number)\n -- e.g. \"A-z 2 CR\" will accept 2 lines\n accept_n_lines = '',\n -- Cycle to prev completion item, or manually invoke completion\n prev = '',\n -- Cycle to next completion item, or manually invoke completion\n next = '',\n dismiss = '',\n },\n },\n}\n```\n\n**Setting up with nvim-cmp**:\n\n
\n\n```lua\nrequire('cmp').setup {\n sources = {\n {\n -- Include minuet as a source to enable autocompletion\n { name = 'minuet' },\n -- and your other sources\n }\n },\n performance = {\n -- It is recommended to increase the timeout duration due to\n -- the typically slower response speed of LLMs compared to\n -- other completion sources. This is not needed when you only\n -- need manual completion.\n fetching_timeout = 2000,\n },\n}\n\n\n-- If you wish to invoke completion manually,\n-- The following configuration binds `A-y` key\n-- to invoke the configuration manually.\nrequire('cmp').setup {\n mapping = {\n [\"\"] = require('minuet').make_cmp_map()\n -- and your other keymappings\n },\n}\n```\n\n
\n\n**Setting up with blink-cmp**:\n\n
\n\n```lua\nrequire('blink-cmp').setup {\n keymap = {\n -- Manually invoke minuet completion.\n [''] = require('minuet').make_blink_map(),\n },\n sources = {\n -- Enable minuet for autocomplete\n default = { 'lsp', 'path', 'buffer', 'snippets', 'minuet' },\n -- For manual completion only, remove 'minuet' from default\n providers = {\n minuet = {\n name = 'minuet',\n module = 'minuet.blink',\n score_offset = 8, -- Gives minuet higher priority among suggestions\n },\n },\n },\n -- Recommended to avoid unnecessary request\n completion = { trigger = { prefetch_on_insert = false } },\n}\n```\n\n
\n\n**LLM Provider Examples**:\n\n**Deepseek**:\n\n```lua\n-- you can use deepseek with both openai_fim_compatible or openai_compatible provider\nrequire('minuet').setup {\n provider = 'openai_fim_compatible',\n provider_options = {\n openai_fim_compatible = {\n api_key = 'DEEPSEEK_API_KEY',\n name = 'deepseek',\n optional = {\n max_tokens = 256,\n top_p = 0.9,\n },\n },\n },\n}\n\n\n-- or\nrequire('minuet').setup {\n provider = 'openai_compatible',\n provider_options = {\n openai_compatible = {\n end_point = 'https://api.deepseek.com/v1/chat/completions',\n api_key = 'DEEPSEEK_API_KEY',\n name = 'deepseek',\n optional = {\n max_tokens = 256,\n top_p = 0.9,\n },\n },\n },\n}\n```\n"}, "a4a6fc6b5a5bd41b85cd987b6c1e385274439c21": {"t": 1785763243.6447754, "n": 4803, "h": "bf5014c6496c5266", "c": "\n# Minuet AI\n\nMinuet AI: Dance with Intelligence in Your Code 💃.\n\n`Minuet-ai` brings the grace and harmony of a minuet to your coding process.\nJust as dancers move during a minuet.\n\n# Features\n\n- AI-powered code completion with dual modes:\n - Specialized prompts and various enhancements for chat-based LLMs on code completion tasks.\n - Fill-in-the-middle (FIM) completion for compatible models (DeepSeek,\n Codestral, Qwen, and others).\n- Support for multiple AI providers (OpenAI, Claude, Gemini, Codestral, Ollama, and\n OpenAI-compatible services).\n- Customizable configuration options.\n- Streaming support to enable completion delivery even with slower LLMs.\n- Support `nvim-cmp`, `blink-cmp`, `virtual text` frontend.\n\n# Requirements\n\n- Neovim 0.10+.\n- [plenary.nvim](https://github.com/nvim-lua/plenary.nvim)\n- optional: [nvim-cmp](https://github.com/hrsh7th/nvim-cmp)\n- optional: [blink.cmp](https://github.com/Saghen/blink.cmp)\n- An API key for at least one of the supported AI providers\n\n# Installation\n\n**Lazy.nvim**:\n\n```lua\nspecs = {\n {\n 'milanglacier/minuet-ai.nvim',\n config = function()\n require('minuet').setup {\n -- Your configuration options here\n }\n end,\n },\n { 'nvim-lua/plenary.nvim' },\n -- optional, if you are using virtual-text frontend, nvim-cmp is not\n -- required.\n { 'hrsh7th/nvim-cmp' },\n -- optional, if you are using virtual-text frontend, blink is not required.\n { 'Saghen/blink.cmp' },\n}\n```\n\n**Rocks.nvim**:\n\n`Minuet` is available on luarocks.org. Simply run `Rocks install\nminuet-ai.nvim` to install it like any other luarocks package.\n\n**Setting up with virtual text**:\n\n```lua\nrequire('minuet').setup {\n virtualtext = {\n auto_trigger_ft = {},\n keymap = {\n -- accept whole completion\n accept = '',\n -- accept one line\n accept_line = '',\n -- accept n lines (prompts for number)\n -- e.g. \"A-z 2 CR\" will accept 2 lines\n accept_n_lines = '',\n -- Cycle to prev completion item, or manually invoke completion\n prev = '',\n -- Cycle to next completion item, or manually invoke completion\n next = '',\n dismiss = '',\n },\n },\n}\n```\n\n**Setting up with nvim-cmp**:\n\n
\n\n```lua\nrequire('cmp').setup {\n sources = {\n {\n -- Include minuet as a source to enable autocompletion\n { name = 'minuet' },\n -- and your other sources\n }\n },\n performance = {\n -- It is recommended to increase the timeout duration due to\n -- the typically slower response speed of LLMs compared to\n -- other completion sources. This is not needed when you only\n -- need manual completion.\n fetching_timeout = 2000,\n },\n}\n\n\n-- If you wish to invoke completion manually,\n-- The following configuration binds `A-y` key\n-- to invoke the configuration manually.\nrequire('cmp').setup {\n mapping = {\n [\"\"] = require('minuet').make_cmp_map()\n -- and your other keymappings\n },\n}\n```\n\n
\n\n**Setting up with blink-cmp**:\n\n
\n\n```lua\nrequire('blink-cmp').setup {\n keymap = {\n -- Manually invoke minuet completion.\n [''] = require('minuet').make_blink_map(),\n },\n sources = {\n -- Enable minuet for autocomplete\n default = { 'lsp', 'path', 'buffer', 'snippets', 'minuet' },\n -- For manual completion only, remove 'minuet' from default\n providers = {\n minuet = {\n name = 'minuet',\n module = 'minuet.blink',\n score_offset = 8, -- Gives minuet higher priority among suggestions\n },\n },\n },\n -- Recommended to avoid unnecessary request\n completion = { trigger = { prefetch_on_insert = false } },\n}\n```\n\n
\n\n**LLM Provider Examples**:\n\n**Deepseek**:\n\n```lua\n-- you can use deepseek with both openai_fim_compatible or openai_compatible provider\nrequire('minuet').setup {\n provider = 'openai_fim_compatible',\n provider_options = {\n openai_fim_compatible = {\n api_key = 'DEEPSEEK_API_KEY',\n name = 'deepseek',\n optional = {\n max_tokens = 256,\n top_p = 0.9,\n },\n },\n },\n}\n\n\n-- or\nrequire('minuet').setup {\n provider = 'openai_compatible',\n provider_options = {\n openai_compatible = {\n end_point = 'https://api.deepseek.com/v1/chat/completions',\n api_key = 'DEEPSEEK_API_KEY',\n name = 'deepseek',\n optional = {\n max_tokens = 256,\n top_p = 0.9,\n },\n },\n },\n}\n```\n"}}}}