kawre / leetcode.nvim

A Neovim plugin enabling you to solve LeetCode problems.
MIT License
1.05k stars 46 forks source link

Error on submission #1

Closed lucasgrvarela closed 11 months ago

lucasgrvarela commented 12 months ago
Error executing vim.schedule lua callback: ...as/.local/share/nvim/lazy/nui.nvim/lua/nui/line/init.lua:22: attempt to index local 'block' (a nil value)
stack traceback:
        ...as/.local/share/nvim/lazy/nui.nvim/lua/nui/line/init.lua:22: in function 'append'
        ...im/lazy/leetcode.nvim/lua/leetcode/ui/console/result.lua:69: in function 'handle_runtime'
        ...im/lazy/leetcode.nvim/lua/leetcode/ui/console/result.lua:210: in function 'unknown'
        ...im/lazy/leetcode.nvim/lua/leetcode/ui/console/result.lua:244: in function 'handle'
        ...are/nvim/lazy/leetcode.nvim/lua/leetcode/runner/init.lua:42: in function 'callback'
        ...are/nvim/lazy/leetcode.nvim/lua/leetcode/runner/init.lua:27: in function 'callback'
        ...nvim/lazy/leetcode.nvim/lua/leetcode/api/interpreter.lua:28: in function 'cb'
        ...share/nvim/lazy/leetcode.nvim/lua/leetcode/api/utils.lua:58: in function ''
        vim/_editor.lua: in function <vim/_editor.lua:0>

Even with the error the submission is still being processed in the leetcode I can see it reached there but In the editor I have this error.

image

$ nvim --version
NVIM v0.9.2
Build type: Release
LuaJIT 2.1.1692716794

my init.lua

vim.cmd[[filetype plugin indent on]]
vim.cmd[[syntax on]]

vim.cmd[[set autoindent]]
vim.cmd[[set background=light]]
vim.cmd[[set backspace=indent,eol,start]]
vim.cmd[[set clipboard=unnamedplus]] 
vim.cmd[[set expandtab]]
vim.cmd[[set foldopen-=search]]
vim.cmd[[set guicursor=]]
vim.cmd[[set hidden]]
vim.cmd[[set ignorecase]]
vim.cmd[[set incsearch]]
vim.cmd[[set laststatus=0]]
vim.cmd[[set nobackup]]
vim.cmd[[set noswapfile]]
vim.cmd[[set nowrap]]
vim.cmd[[set ruler]]
vim.cmd[[set scrolloff=999]]
vim.cmd[[set shiftwidth=4]]
vim.cmd[[set shortmess-=S]]
vim.cmd[[set smartcase]]
vim.cmd[[set softtabstop=4]]
vim.cmd[[set tabstop=4]]
vim.cmd[[set termguicolors]]
vim.cmd[[set ttimeout]]
vim.cmd[[set ttimeoutlen=100]]

vim.cmd[[let mapleader = " "]]
vim.cmd[[nnoremap <leader><space> :Telescope buffers<CR>]]
vim.cmd[[nnoremap <leader>c :cd %<CR>]]
vim.cmd[[nnoremap <leader>e :E<CR>]]
vim.cmd[[nnoremap <leader>f :Telescope find_files<CR>]]
vim.cmd[[nnoremap <leader>g :Telescope live_grep<CR>]]
vim.cmd[[nnoremap <leader>n :cn<CR>]]
vim.cmd[[nnoremap <leader>p :cp<CR>]]
vim.cmd[[nnoremap <leader>s :G<CR>]]
vim.cmd[[nnoremap <leader>y :let @+=expand("%") . ':' . line(".")<CR>]]

vim.cmd[[noremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"]]
vim.cmd[[noremap <expr> <S-TAB> pumvisible() ? "\<C-p>" : "\<TAB>"]]
vim.cmd[[noremap <expr> <TAB> pumvisible() ? "\<C-n>" : "\<TAB>"]]
vim.cmd[[noremap <leader>ca :LspCodeAction<CR>]]
vim.cmd[[noremap <leader>rn :LspRename<CR>]]
vim.cmd[[noremap K :LspHover<CR>]]
vim.cmd[[noremap [d :LspDiagPrev<CR>]]
vim.cmd[[noremap ]d :LspDiagNext<CR>]]
vim.cmd[[noremap gd :LspGotoDefinition<CR>]]
vim.cmd[[noremap gr :LspShowReferences<CR>]]

local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
    vim.fn.system({
        "git",
        "clone",
        "--filter=blob:none",
        "https://github.com/folke/lazy.nvim.git",
        "--branch=stable",
        lazypath,
    })
end
vim.opt.rtp:prepend(lazypath)

require("lazy").setup({

    'tpope/vim-fugitive',
    'MunifTanjim/nui.nvim',
    'nvim-treesitter/nvim-treesitter',
    {
        'nvim-telescope/telescope.nvim', tag = '0.1.3',
        dependencies = { 'nvim-lua/plenary.nvim' }
    },

    "ellisonleao/gruvbox.nvim",
    "kawre/leetcode.nvim",

    {
        "kawre/leetcode.nvim",
        build = ":TSUpdate html",
        dependencies = {
            "nvim-treesitter/nvim-treesitter",
            "nvim-telescope/telescope.nvim",
            "nvim-lua/plenary.nvim",
            "MunifTanjim/nui.nvim",

            "nvim-tree/nvim-web-devicons",
            "rcarriga/nvim-notify",
        },
        opts = {
            domain = "com",
            arg = "leetcode.nvim",
            lang = "golang",

        },
        config = function(_, opts)
            vim.keymap.set("n", "<leader>lq", "<cmd>LcQuestionTabs<cr>")
            vim.keymap.set("n", "<leader>lm", "<cmd>LcMenu<cr>")
            vim.keymap.set("n", "<leader>lc", "<cmd>LcConsole<cr>")
            vim.keymap.set("n", "<leader>ll", "<cmd>LcLanguage<cr>")
            vim.keymap.set("n", "<leader>ld", "<cmd>LcDescriptionToggle<cr>")
            require("leetcode").setup(opts)
        end,
    }
})

vim.cmd[[let g:netrw_list_hide='\(^\|\s\s\)\zs\.\S\+']]
vim.cmd[[let g:netrw_banner=0]]

require("gruvbox").setup({})
vim.cmd[[colorscheme gruvbox]]

require'nvim-treesitter.configs'.setup {
    ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "html", "go", "ruby" },
}
kawre commented 12 months ago

Thank you for opening an issue. Can you provide the full code that was used for this submission?

lucasgrvarela commented 11 months ago

Yes, here it is. I tried two versions, both had the same error.

code1 - brute force

func twoSum(nums []int, target int) []int {
    res := []int{}
    for i :=0 ; i < len(nums) ; i++{
        for j:=0 ; j < len(nums) ; j++{
            if (nums [i] + nums [j] == target && i!=j){
                res = []int{i,j}
                return res
            }
        }
    }
    return res      
}

code2 - O(n)

func twoSum(nums []int, target int) []int {
    seen := make(map[int]int)
    for i := range nums {
        need := target - nums[i]
        if idx, ok := seen[need]; ok {
            return []int{idx,i}
        }
        seen[nums[i]] = i
    }
    return []int{}
}
kawre commented 11 months ago

It's just leetcode api being weird. Merged the fix into the master branch. If you still have any more problems, let me know.

lucasgrvarela commented 11 months ago

It's working fine now, thank you for this awesome plugin :)