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

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

Project Cover

Kimi

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

Project Cover

阿里绘蛙

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

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

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