# Configurando Sway en Vim

By [andrw](https://paragraph.com/@andrw) · 2023-12-13

---

![](https://storage.googleapis.com/papyrus_images/7d4cd67cc29d06a960055d7c700801edc375766e4a6778058b1a42b1e996d1b0.png)

> Aviso legal : Esta publicación es una traducción realizada por un miembro de la Comunidad Fuel. Se realizan cuidadosos controles para garantizar la exactitud de las traducciones, pero éstas pueden contener errores u omisiones. Fuel Labs no se hace responsable de la exactitud, fiabilidad o actualidad de la información traducida. Enlace a la publicación original: sway.vim

Si eres un swayor y usas vim como editor de código principal aquí te enseñare como configurar la sintaxis de sway en vim, para que así puedas desarrollar smart contracts como todo un ninja.

**Empecemos**
-------------

### **Pre-requisito**

Antes de todo tenemos que verificar que tengamos el `forc-lsp` instalado, ejecutando el comando `forc-lsp —version`, en caso de no tenerlo instalado debes instalar el [toolchain de sway](https://fuellabs.github.io/sway/v0.25.2/introduction/installation.html).

Luego de verificar que tienes el `forc-lsp` instalado debes clonar el repositorio de `sway.vim`:

    git clone https://github.com/FuelLabs/sway.vim.git
    

### **Configurar Neovim**

copia las carpetas “ftdetect“ y “syntax“ en tu carpeta `.config/` con el siguiente comando

    cp -R ~/sway.vim/syntax ~/.config/nvim && cp -R ~/sway.vim/ftdetect ~/.config/nvim
    

en caso de no tener el archivo `~/.config/nvim/init.lua`, instala [kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim).

luego agrega lo siguiente a tu archivo `~/.config/nvim/init.lua`.

    -- Install Sway LSP as a custom	server
    local lspconfig = require 'lspconfig'
    local configs = require 'lspconfig.configs'
    
    -- Check if the config is already defined (useful when reloading this file)
    if not configs.sway_lsp then
       configs.sway_lsp = {
         default_config = {
           cmd = {'forc-lsp'},
           filetypes = {'sway'},
           on_attach = on_attach,
           init_options = { 
             -- Any initialization options
             logging = { level = 'trace' }
           },
           root_dir = function(fname)
             return lspconfig.util.find_git_ancestor(fname)
           end;
           settings = {};
         };
       }
     end
    
    lspconfig.sway_lsp.setup{}
    

Verifica que el `LSP` esta instalado correctamente ejecutando `:LspInfo`

**Configurar Vim**
------------------

Para configurar sway en vim son pasos muy similares a los que ejecutamos para configurarlo en neovim.

*   clona el repositorio de sway.vim
    

    git clone https://github.com/FuelLabs/sway.vim.git
    

*   Ahora copia las carpetas “ftdetect“ y “syntax“ en tu carpeta `.config/` con el siguiente comando:
    

    cp -R ~/sway.vim/syntax ~/.config/nvim && cp -R ~/sway.vim/ftdetect ~/.config/nvim
    

*   Agrega el siguiente código a tu `~/.vim/filetype.vim`
    

    if exists("did_load_filetypes")
      finish
    endif
    
    augroup filetypedetect
      au! BufNewFile,BufRead *.[sS][wW] setf sway
    augroup END
    

*   Instala [vim.plug](https://github.com/junegunn/vim-plug) con el siguiente comando
    

    curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
        https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
    

*   Agrega el siguiente código a tu `~/.vimrc`
    

    call plug#begin()
    
    Plug 'prabirshrestha/vim-lsp'
    
    call plug#end()
    

*   Ahora debes de crear un archivo llamado `~/.vim/lsp.vim` y agregarle el siguiente código
    

    " vim-lsp for Sway (sway-lsp)
    if executable('sway-lsp')
        au User lsp_setup call lsp#register_server({
            \ 'name': 'sway-lsp',
            \ 'cmd': {server_info->['sway-lsp']},
            \ 'whitelist': ['sway'],
            \ })
    endif
    

*   Abre vim y ejecuta `:source ~/.vim/lsp.vim`
    
*   Y por ultimo comprueba si LSP esta ejecutando con `:LspStatus`
    

Happy hacking🌴 nos vemos en la proxima

Si quieres ver el articulo original en ingles dirígete [aquí](https://github.com/FuelLabs/sway.vim).

---

*Originally published on [andrw](https://paragraph.com/@andrw/configurando-sway-en-vim-2)*
