O plugin de formatação permite formatar código facilmente. O objetivo do plugin é preservar o histórico de desfazer do documento e a posição do cursor do usuário ao formatar o código, para que a formatação não interrompa o trabalho do usuário. Isso é especialmente importante para a formatação automática ao salvar.
Ele permite ao usuário formatar o código de duas maneiras:
Utilizando manualmente a ação "Formatar Documento".
Automaticamente ao salvar
Dica
Você pode pesquisar essa ação na barra de comandos e associar um atalho a ela para facilitar o acesso
A lista atual de idiomas e formatadores suportados é a seguinte:
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
O plugin pode ser configurado de duas maneiras:
Globalmente, a partir da janela de configuração
Para cada projeto, usando o arquivo
.kateproject
Ao ler a configuração, o plugin primeiro tentará ler a configuração do arquivo .kateproject e, em seguida, lerá a configuração global. Exemplo:
{
"formatOnSave": true,
"formatterForJson": "jq",
"cmake-format": {
"formatOnSave": false
},
"autopep8": {
"formatOnSave": false
}
}
A configuração acima:
ativa a opção "formatar ao salvar" globalmente
especifica "jq" como o formatador para JSON
desativa a opção "formatar ao salvar" para cmake-format e autopep8
Para configurar a formatação de um projeto, primeiro crie um arquivo .kateproject e, em seguida, adicione um objeto "formatting" a ele. No objeto "formatting", você pode especificar suas configurações, como mostrado no exemplo anterior. Exemplo:
Nota
Você precisa habilitar o plugin de projeto para que isso funcione
{
"name": "Meu Projeto Legal",
"files": [
{
"git": 1
}
],
"formatting": {
"formatterForJson": "clang-format",
"autopep8": {
"formatOnSave": false
}
}
}