본문 바로가기
카테고리 없음

NeoVim과 flutter 설정

by 붕어사랑 티스토리 2024. 3. 27.
반응형

 

 

 

먼저 nvim과 nvchad를 깔아준다

brew install nvim
git clone https://github.com/NvChad/starter ~/.config/nvim && nvim

 

 

설치도중 permission error가 난다면 ~/.local/share와 ~/.local/state에 퍼미션 문제가 있다.

chown -R 유저이름 nvim 을 해주어 권한을 가져오자

 

설치가 되었다면 아래 코드를 통해 lua lsp를 설치해주자.

 

:MasonInstall lua-language-server

 

 

 

다음으로 ~/config/nvim으로 이동한다

 

그리고 lua/plugins/init.lua 파일을 연 뒤 flutter-tools 를 설치해준다

 

{
    'akinsho/flutter-tools.nvim',
    lazy = false,
    dependencies = {
        'nvim-lua/plenary.nvim',
        'stevearc/dressing.nvim', -- optional for vim.ui.select
    },
    config = true,
}

 

 

설치하고 에러가 나면 sudo로 nvim을 한번 실행시켜주면 됨

 

 

그리고 .config/nvim/lua/mapping.lua에 아래 키맵핑을 추가해서 사용해준다.

map("n", "K", vim.lsp.buf.hover, { desc = "hover" })
map("n", "<F2>", "<C-w><C-w>", { desc = "toggle window" })
map("n", "<F3>", "<cmd>FlutterOutlineToggle<CR>", { desc = "outline toggle" })
map("n", "<F4>", "<cmd>w|FlutterReload<CR>", { desc = "outline toggle" })
map("n", "<F5>", "<cmd>FlutterRun<CR>", { desc = "outline toggle" })
map("n", "<F6>", "<cmd>FlutterDevices<CR>", { desc = "outline toggle" })
map("n", "<F7>", "<cmd>FlutterDevoTools<CR>", { desc = "outline toggle" })
map("n", "gd", vim.lsp.buf.definition, { desc = "go to definition" })
map("n", "gr", vim.lsp.buf.references, { desc = "go to references" })
map("n", "gi", vim.lsp.buf.implementation, { desc = "go to references" })
map("n", "fm", vim.lsp.buf.format, { desc = "code formmater" })
map("n", "<leader>re", vim.lsp.buf.rename, { desc = "rename" })
map("n", "ca", vim.lsp.buf.code_action, { desc = "run code action" })
map("n", "<leader>sh", vim.diagnostic.show, { desc = "run code action" })

 

 

<ledaer>ch : 내장 단축키 목록

 

<leader>ff : 파일찾기

<leader>fa : 전체찾기

<leader>fw : 라이브 grep 차기

 

 

 

 

lsp config 하는법

 

:LspInfo를 치면 현재 활성화된 lsp들 목록이 나온다

 

아래 링크를 가면 설명이 자세히 나와있음.

 

요약하면 Mason으로 lsp를 설치하되, 각각 lsp에 맞게 따로 설정이 필요하고 그거에 대한 링크가 아래 페이지에 나와있음

https://nvchad.com/docs/config/lsp/

 

 

반응형

댓글