Spec-Zone.ru › Prettier

Настройка Vim

Пользователи Vim могут установить либо vim-prettier, который специфичен для Prettier, либо Neoformat или ALE, которые являются обобщенными движками проверки и форматирования с поддержкой Prettier.

vim-prettier

См. файл «readme» для vim-prettier для инструкций по установке и использованию.

Neoformat

Лучший способ установить Neoformat — с помощью вашего любимого менеджера плагинов для Vim, такого как vim-plug:

Plug 'sbdchd/neoformat'

Для того, чтобы Neoformat использовал локальную версию Prettier (т. е. использовал node_modules/.bin/prettier вместо поиска prettier в $PATH), необходимо установить опцию neoformat_try_node_exe.

let g:neoformat_try_node_exe = 1

Запустите :Neoformat или :Neoformat prettier в поддерживаемом файле, чтобы запустить Prettier.

Для того, чтобы Neoformat запускал Prettier при сохранении файла:

autocmd BufWritePre *.js Neoformat

Вы также можете заставить Vim чаще форматировать код, установив autocmd для других событий. Вот несколько полезных:

  • TextChanged: после внесения изменений в текст в режиме Normal
  • InsertLeave: при выходе из режима Insert

Например, вы можете форматировать код по обоим событиям одновременно с помощью BufWritePre, как показано ниже:

autocmd BufWritePre,TextChanged,InsertLeave *.js Neoformat

См. :help autocmd-events в Vim для получения подробностей.

Рекомендуется использовать файл конфигурации, но вы также можете добавить опции в ваш .vimrc:

autocmd FileType javascript setlocal formatprg=prettier\ --single-quote\ --trailing-comma\ es5
" Use formatprg when available
let g:neoformat_try_formatprg = 1

Каждый пробел в опциях Prettier должен быть экранирован с помощью \.

ALE

Для ALE требуется либо Vim 8, либо Neovim, так как ALE использует асинхронные возможности, которые предоставляют как Vim 8, так и Neovim.

Лучший способ установить ALE — с помощью вашего любимого менеджера плагинов для Vim, такого как vim-plug:

Plug 'dense-analysis/ale'

Дополнительные инструкции можно найти на странице репозитория ALE.

ALE попытается использовать Prettier, установленный локально, прежде чем искать глобальную установку.

Включите исправление Prettier для используемых вами языков:

let g:ale_fixers = {
\   'javascript': ['prettier'],
\   'css': ['prettier'],
\}

ALE поддерживает как проверки, так и исправления. Если вы не укажете, какие проверки запускать, будут запущены все доступные инструменты для всех поддерживаемых языков, и вы, возможно, получите правильно отформатированный файл с кучей ошибок проверки. Чтобы отключить это поведение, вы можете указать ALE запускать только те проверки, которые вы явно настроили (подробнее в FAQ):

let g:ale_linters_explicit = 1

Затем вы можете запустить :ALEFix в файле JavaScript или CSS, чтобы запустить Prettier.

Чтобы ALE запускал Prettier при сохранении файла:

let g:ale_fix_on_save = 1

Рекомендуется использовать файл конфигурации, но вы также можете добавить опции в ваш .vimrc:

let g:ale_javascript_prettier_options = '--single-quote --trailing-comma all'

coc-prettier

Расширение Prettier для coc.nvim, которое требует neovim или vim8.1. Установите coc.nvim с помощью вашего любимого менеджера плагинов, такого как vim-plug:

Plug 'neoclide/coc.nvim', {'branch': 'release'}

И установите coc-prettier с помощью команды:

CocInstall coc-prettier

Настройте команду Prettier в вашем init.vim или .vimrc

command! -nargs=0 Prettier :call CocAction('runCommand', 'prettier.formatFile')

Обновите свой coc-settings.json для языков, которые вы хотите форматировать при сохранении.

{
  "coc.preferences.formatOnSaveFiletypes": ["css", "markdown"]
}

coc-prettier имеет те же конфигурации, что и prettier-vscode, откройте coc-settings.json с помощью :CocConfig, чтобы получить поддержку автодополнения.

Выполнение вручную

Если вам нужно что-то действительно простое, вы можете создать пользовательскую комбинацию клавиш. В этом примере gp (мнемоническое обозначение: «получить красиво») используется для запуска prettier (с опциями) в активном буфере:

nnoremap gp :silent %!prettier --stdin-filepath %<CR>

Обратите внимание, что если в вашем коде есть синтаксическая ошибка, весь буфер будет заменен сообщением об ошибке. Вам нужно будет нажать u для возвращения вашего кода.

Еще один недостаток этого подхода заключается в том, что позиция курсора не сохраняется.

© James Long and contributors
https://prettier.io/docs/en/vim

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API