Модуль форматирования

Этот модуль позволяет с лёгкостью форматировать код. Он обеспечивает сохранение журнала отмены действий над документом и позиции курсора пользователя во время форматирования кода, чтобы форматирование кода не мешало работе. Это особенно важно для автоматического форматирования при сохранении.

Использование

Модуль позволяет пользователю форматировать код двумя способами:

  • Вручную (с помощью действия «Форматировать документ»)

  • Автоматически при сохранении

Подсказка

Можно найти это действие на панели команд и назначить для него комбинацию клавиш, чтобы упростить доступ

Поддерживаемые языки и средства форматирования

Текущий список поддерживаемых языков и средств форматирования:

  • C/C++/ObjectiveC/ObjectiveC++/Protobuf/GLSL/Java - clang-format

  • Javascript/Typescript/JSX/TSX - prettier

  • JSON

    • prettier

    • clang-format

    • jq

  • Dart - dartfmt

  • Rust - rustfmt

  • Go - gofmt

  • XML - xmllint

  • Zig - zigfmt

  • CMake - cmake-format

  • D - dfmt

  • Fish Shell - fish_indent

  • Bash - shfmt

  • Nix - nixfmt

  • QML - qmlformat

  • HTML - prettier

  • Swift - swiftformat

  • Erlang - erlfmt

  • Godot Script - gdformat

  • Python

    • autopep8

    • ruff

  • YAML

    • yamlfmt

    • prettier

Настройка

Модуль можно настроить двумя способами:

  • На глобальном уровне (с помощью окна настройки программы)

  • Или на уровне проекта (с помощью файла .kateproject)

Модуль сначала выполнит попытку прочитать конфигурацию из файла .kateproject, а уже потом глобальную. Пример:

{
    "formatOnSave": true,
    "formatterForJson": "jq",
    "cmake-format": {
        "formatOnSave": false
    },
    "autopep8": {
        "formatOnSave": false
    }
}

Код выше:

  • включает «форматирование при сохранении» на глобальном уровне

  • указывает «jq» в качестве средства форматирования для JSON

  • отключает «форматирование при сохранении» для cmake-format и autopep8

Чтобы настроить форматирование для проекта, сначала создайте файл .kateproject, а затем добавьте в него объект "formatting". В объекте "formatting" можно указать параметры (как показано в предыдущем примере). Пример:

Примечание

Чтобы использовать эту возможность, необходимо включить Модуль проектов

{
    "name": "My Cool Project",
    "files": [
        {
            "git": 1
        }
    ],
    "formatting": {
        "formatterForJson": "clang-format",
        "autopep8": {
            "formatOnSave": false
        }
    }
}

Временно отключить форматирование при сохранении

При работе часто возникает потребность на время отключить форматирование. Это можно сделать с помощью меню: СервисФорматировать при сохранении. Форматирование также можно включить или отключить на Панели команд.