Em outro post aqui eu descrevi como configurei o vim para trabalhar com Dart e Flutter. Da mesma forma, pretendo te ajudar a configurar o seu vim para trabalhar com typescript.
Suporte a linguagem
Considerando que você utilize o vim-plug para instalar os plugins para o seu vim. O primeiro passo é adicionar o suporte a linguagem:
Plug 'HerringtonDarkholme/yats.vim'
React
Se você vai utilizar React (arquivos .tsx):
Plug 'MaxMEllon/vim-jsx-pretty'
Plugins
Aqui você precisa considerar as ferramentas que você utiliza no seu dia-a-dia. Por exemplo, para quem utiliza styled-components
é recomendado que se instale o suporte a syntax:
Plug 'styled-components/vim-styled-components', { 'branch': 'main' }
Vale considerar também o Prettier:
Plug 'prettier/vim-prettier'
Para o HTML, eu utilizo apenas o emmet:
Plug 'mattn/emmet-vim'
CoC
Com os plugins acima você vai conseguir desenvolver tranquilo, com syntax highlight e tudo mais. Porem, para obter recursos mais atuais como "go-to-definition", "autocomplete" e "auto import" precisamos instalar o CoC.
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Indique as extensões que você irá utilizar:
let g:coc_global_extensions = [
\ 'coc-snippets',
\ 'coc-actions',
\ 'coc-lists',
\ 'coc-tsserver',
\ 'coc-html',
\ 'coc-css',
\ 'coc-prettier',
\ 'coc-vimlsp',
\ ]
Você também pode instalar por dentro do neovim com o comando:
:CocInstall <extension-name>
CoC: Popup de sugestão
<Tab>
para navegar e <Ctrl-Space>
para abrir popup de sugestão:
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
inoremap <silent><expr> <c-space> coc#refresh()
CoC: Renomear Símbolo
nmap <leader>rn <Plug>(coc-rename)
CoC: Navegação de código
nmap <silent> gf <Plug>(coc-definition)
CoC: Ações de Código
Exemplo de uso: <leader>aap
para o parágrafo atual. <leader>aw
para a palavra.
xmap <silent> <leader>a <Plug>(coc-codeaction-selected)
nmap <silent> <leader>a <Plug>(coc-codeaction-selected)
CoC: Lista de comandos, extensões e diagnósticos
nnoremap <silent> <space>a :<C-u>CocList diagnostics<cr>
nnoremap <silent> <space>e :<C-u>CocList extensions<cr>
nnoremap <silent> <space>c :<C-u>CocList commands<cr>
Meu setup
Vou deixar aqui o repositório onde mantenho minha config. Além do que foi falado aqui você também vai encontrar o tema que eu uso e outras configurações pessoais. Vale pesquisar o da galera por ai também :)
enriquesaid / nvim-config
my nvim config
nvim-config
my nvim config
requirements
color scheme
install
:PaqInstall
:PaqSync
:LspInstall lua
:LspInstall typescript
:LspInstall html
:LspInstall css
:TSInstall lua
:TSInstall javascript
:TSInstall typescript
:TSInstall json
:TSInstall html
:TSInstall css
:TSInstall yaml
:TSInstall dart
Qualquer coisa estamos ai nos comentários 😄
Um abraço!
Top comments (1)
Cara, sensacional, ficou muito bacana o resultado. Sou iniciante no Vim e depois que comecei a usar me apaixonei, vou usar esse setup tmb, muito obrigado!