Как автоматически форматировать файлы Ruby или .erb в VS Code?

Я нажимаю + + F в Visual Studio Code для macOS, ярлык " Формат документа", чтобы отформатировать файл с именем foo.rb или foo.html.erb.

Вместо того, чтобы форматировать документ, он печатает это письмо: Ï

Как мне получить его для форматирования документа?

Ответ 1

Вы можете установить ассоциации форматов в VSCode, поэтому файлы .erb будут обрабатываться как .html.

Перейдите на File-> Настройки → Settings-> Нажмите... в правом верхнем углу corner-> Откройте файл settings.json.

Затем добавьте этот кусок кода в ваш файл settings.json

"files.associations": {
   "*.html.erb": "html"
}

Вот как я решил эту проблему. Он удалит некоторые из выделенных участков кода, но автоматически отформатирует шаблоны HTML, такие как документ HTML.

Ответ 2

В настоящее время (март 2019 г.) я думаю, что более симпатичный вариант с prettier-ruby - лучшие варианты: он может работать с Ruby, ERB (как HTML), JS и многими другими.

prettier script.rb # will show you the formatted script
prettier --write script.rb # will overwrite the file with the formatted script

Вы можете использовать плагин Prettier VS Code, чтобы сделать это автоматически: https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode

https://github.com/prettier/plugin-ruby

Ответ 3

VSCode не имеет встроенной поддержки форматирования файлов Ruby, но вы можете легко установить расширение, которое добавляет это. Здесь, как начать с расширение Ruby:

Теперь команда документа формата должна работать и для файлов Ruby.

Надеюсь, что поможет

Ответ 4

Вы можете использовать Rufo для форматирования вашего кода Ruby. Это форматированное мнение (например, Prettier для JS, если вы знакомы с ним).

Вы можете использовать расширение vscode-rufo, чтобы интегрировать его с VSCode.

Ответ 5

gem install htmlbeautifier

с помощью функции поиска, предоставленной в редакторе с помощью Ctrl + Shift + P (или Command + Shift + P на Mac), а затем ищите формат документа.

Ответ 6

Чтобы отформатировать ваши файлы ruby, вам не нужен дополнительный плагин, вы можете просто сопоставить некоторые ключи, чтобы сделать "editor.action.reindentLines"

Если вы используете плагин vscode-vim, вы можете добавить это в свои настройки:

 "vim.normalModeKeyBindingsNonRecursive": [
        {
            "before": ["=", "="],
            "commands": ["editor.action.reindentlines"]
        }
    ],

Затем в обычном режиме vim == переформатирует ваш файл.