π¨ leetcode.nvim is currently in the alpha stage of development π¨
demo.mp4
-
π an intuitive dashboard for effortless navigation within leetcode.nvim
-
π question description formatting for a better readability
-
π support for daily and random questions
-
πΎ caching for optimized performance
-
Neovim >= 0.9.0
{
"kawre/leetcode.nvim",
build = ":TSUpdate html",
dependencies = {
"nvim-treesitter/nvim-treesitter",
"nvim-telescope/telescope.nvim",
"nvim-lua/plenary.nvim", -- required by telescope
"MunifTanjim/nui.nvim",
-- optional
"nvim-tree/nvim-web-devicons",
-- recommended
-- "rcarriga/nvim-notify",
},
opts = {
-- configuration goes here
},
}
To see full configuration types see template.lua
Click to see
{
---@type lc.domain
domain = "com", -- For now "com" is the only one supported
---@type string
arg = "leetcode.nvim",
---@type lc.lang
lang = "cpp",
---@type lc.sql_lang
sql = "mysql",
---@type string
directory = vim.fn.stdpath("data") .. "/leetcode/",
---@type boolean
logging = true,
console = {
size = {
width = "75%", ---@type string | integer
height = "75%", ---@type string | integer
},
dir = "row", ---@type "col" | "row"
},
description = {
width = "40%", ---@type string | integer
},
}
Argument for Neovim
---@type string
arg = "leetcode.nvim"
See usage for more info
Language to start your session with
---@type lc.lang
lang = "cpp"
---@type lc.sql_lang
sql = "mysql"
LeetCode domain.
---@type lc.domain
domain = "com" -- For now "com" is the only one supported
Where to store leetcode.nvim data
---@type string
directory = vim.fn.stdpath("data") .. "/leetcode/"
Whether to log leetcode.nvim status notifications
---@type boolean
logging = true
Console appearance
console = {
size = {
width = "75%", ---@type string | integer
height = "75%", ---@type string | integer
},
dir = "row", ---@type "col" | "row"
}
Question description appearance
description = {
width = "40%", ---@type string | integer
}
command | description |
---|---|
LcMenu | opens menu dashboard |
LcConsole | opens console for currently opened question |
LcQuestionTabs | opens a picker with all currently opened question tabs |
LcLanguage | opens a picker to select a language for the current session |
LcDescriptionToggle | toggle question description |
LcRun | run currently opened question |
LcSubmit | submit currently opened question |
This plugin is meant to be used within a fresh Neovim instance.
Meaning that to lauch leetcode.nvim you have to pass arg
as the first and only Neovim argument
nvim leetcode.nvim
It is required to be signed-in to use leetcode.nvim
signin.mp4
When you open a new question, leetcode.nvim creates a new tabpage containing all of the contents related to it. To switch between these tabs, use LcQuestionTabs command
questiontabs.mp4
- CN version
- SQL support
- Statistics menu page
- Docs
- Hints pop-up