Project Icon

supermaven-nvim

为Neovim带来智能代码补全功能

supermaven-nvim是一个为Neovim提供智能代码补全的插件。它支持多种插件管理器安装,允许自定义快捷键和颜色,并可与nvim-cmp集成。插件提供免费版和专业版,可通过命令轻松切换。supermaven-nvim还提供API接口,便于进行自定义开发,有助于提高Neovim的使用效率。

Supermaven Neovim 插件

这个插件 supermaven-nvim 让你能在 Neovim 中使用 Supermaven。如果你在使用 supermaven-nvim 时遇到任何问题,可以考虑提出 issue 或在 Discord 上联系我们。

安装

使用插件管理器,在你的 Neovim 配置文件中运行 .setup({}) 函数。

使用 lazy.nvim

require("lazy").setup({
    {
      "supermaven-inc/supermaven-nvim",
      config = function()
        require("supermaven-nvim").setup({})
      end,
    },
}, {})

使用 packer.nvim

use {
  "supermaven-inc/supermaven-nvim",
  config = function()
    require("supermaven-nvim").setup({})
  end,
}

可选配置

默认情况下,supermaven-nvim 将使用 <Tab><C-]> 键映射来接受和清除建议。你可以通过向 .setup({}) 函数传递 keymaps 表来更改这些键映射。这个表中还包括 accept_word,它允许部分接受补全,直到下一个单词的结尾。默认情况下,这个键映射设置为 <C-j>

ignore_filetypes 表用于在使用 supermaven-nvim 时忽略特定文件类型。如果一个文件类型作为键存在,且其值为 true,supermaven-nvim 将不会为该文件类型显示建议。

suggestion_colorcterm 选项可用于设置建议文本的颜色。

require("supermaven-nvim").setup({
  keymaps = {
    accept_suggestion = "<Tab>",
    clear_suggestion = "<C-]>",
    accept_word = "<C-j>",
  },
  ignore_filetypes = { cpp = true },
  color = {
    suggestion_color = "#ffffff",
    cterm = 244,
  },
  log_level = "info", -- 设置为 "off" 以完全禁用日志记录
  disable_inline_completion = false, -- 禁用内联补全以配合 cmp 使用
  disable_keymaps = false -- 禁用内置键映射以实现更多手动控制
})

与 nvim-cmp 一起使用

如果你正在使用 nvim-cmp,你可以通过在 cmp.setup() 函数中添加以下内容来使用 supermaven 源(默认已注册):

-- cmp.lua
cmp.setup {
  ...
  sources = {
    { name = "supermaven" },
  }
  ...
}

它还有一个内置的高亮组 CmpItemKindSupermaven。要为 lspkind 添加 Supermaven 图标,只需将 Supermaven 添加到你的 lspkind 符号映射中。

-- lspkind.lua
local lspkind = require("lspkind")
lspkind.init({
  symbol_map = {
    Supermaven = "",
  },
})

vim.api.nvim_set_hl(0, "CmpItemKindSupermaven", {fg ="#6CC644"})

或者,你可以在 cmp 格式化函数中将 Supermaven 添加到 lspkind symbol_map 中。

-- cmp.lua
cmp.setup {
  ...
  formatting = {
    format = lspkind.cmp_format({
      mode = "symbol",
      max_width = 50,
      symbol_map = { Supermaven = "" }
    })
  }
  ...
}

以编程方式检查和接受建议

或者,你也可以以编程方式检查是否有活动建议并接受它。

例如:

require("supermaven-nvim").setup({
  disable_keymaps = true
})

...

M.expand = function(fallback)
  local luasnip = require('luasnip')
  local suggestion = require('supermaven-nvim.completion_preview')

  if luasnip.expandable() then
    luasnip.expand()
  elseif suggestion.has_suggestion() then
    suggestion.on_accept_suggestion()
  else
    fallback()
  end
end

使用方法

启动 supermaven-nvim 后,你将被提示使用命令 :SupermavenUseFree 选择免费版,或者通过链接激活 Supermaven Pro 订阅,这将连接你的 Supermaven 账户。

如果 Supermaven 已设置,你可以使用 :SupermavenLogout 切换版本。

如果遇到任何问题,你也可以使用 :SupermavenShowLog 查看 path/to/stdpath-cache/supermaven-nvim.log 中的日志消息。或使用 :SupermavenClearLog 清除日志文件。

命令

Supermaven-nvim 提供以下命令:

:SupermavenStart    启动 supermaven-nvim
:SupermavenStop     停止 supermaven-nvim
:SupermavenRestart  重启 supermaven-nvim
:SupermavenToggle   切换 supermaven-nvim
:SupermavenStatus   显示 supermaven-nvim 的状态
:SupermavenUseFree  切换到免费版
:SupermavenUsePro   切换到专业版
:SupermavenLogout   登出 supermaven
:SupermavenShowLog  显示 supermaven-nvim 的日志
:SupermavenClearLog 清除 supermaven-nvim 的日志

Lua API

supermaven-nvim.api 模块提供以下函数,用于从 Lua 与 supermaven-nvim 交互:

local api = require("supermaven-nvim.api")

api.start() -- 启动 supermaven-nvim
api.stop() -- 停止 supermaven-nvim
api.restart() -- 如果 supermaven-nvim 正在运行则重启,否则启动
api.toggle() -- 切换 supermaven-nvim
api.is_running() -- 如果 supermaven-nvim 正在运行则返回 true
api.use_free_version() -- 切换到免费版
api.use_pro() -- 切换到专业版
api.logout() -- 登出 supermaven
api.show_log() -- 显示 supermaven-nvim 的日志
api.clear_log() -- 清除 supermaven-nvim 的日志
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号