Formatador
Indentação, chaves e espaços consistentes para arquivos .sii e .sui, sem mudar o conteúdo.
O formatador reescreve só o layout de um arquivo: indentação, onde ficam as chaves,
os espaços em volta do : e as linhas em branco. Ele nunca muda um nome, um valor ou
um comentário.
SiiNunit
{
accessory_engine_data:my_engine.engine{
name:"Big Engine"
price : 18000
torque: 2400 }
}
SiiNunit {
accessory_engine_data : my_engine.engine {
name: "Big Engine"
price: 18000
torque: 2400
}
}
Seguro por padrão
- O conteúdo nunca muda. Antes de aplicar um resultado, o formatador confere se cada nome, chave, valor e comentário está exatamente como era. Se algo for diferente, o arquivo fica como está.
- Um arquivo com erros de estrutura não é formatado. Corrija primeiro os erros que
os diagnósticos apontam: com uma
}faltando, o formatador não tem como saber onde uma unit termina. - O
@includesempre começa a linha, porque o jogo ignora um que esteja indentado.
Ele é testado em 73.224 arquivos .sii/.sui do ATS 1.61, do jogo base e de 56
DLCs: nenhum perde conteúdo, e formatar um arquivo duas vezes dá o mesmo resultado.
Formatar um arquivo
- Format Document: Shift mais Alt mais FShift+Alt+F, ou botão direito → Format Document.
- Format Selection: Control mais KCtrl+K e depois Control mais FCtrl+F formata as units que a sua seleção toca. Com só o cursor dentro de uma unit, formata aquela unit.
- Ao salvar: ligado por padrão. Veja abaixo.
A extensão já é o formatador dos arquivos .sii e .sui desde a instalação, mesmo
que o seu formatador padrão seja outro, como o Prettier.
Formatar ao salvar
Com o formatador ligado, todo arquivo .sii/.sui é formatado quando você salva.
Não há mais nada para configurar: você não precisa do editor.formatOnSave do
VS Code. Control mais ZCtrl+Z desfaz a formatação.
Para formatar só quando pedir, desmarque Formatter: Format On Save
(scs-intellisense.formatter.formatOnSave).
Opções
Estilo das chaves
Formatter: Brace Style (scs-intellisense.formatter.braceStyle):
A { fica na linha do cabeçalho:
accessory_engine_data : my_engine.engine {
price: 18000
}
Indentar units
Formatter: Indent Units (scs-intellisense.formatter.indentUnits, ligado por
padrão) indenta as units dentro de SiiNunit { }. Desmarque para mantê-las no começo
da linha. Os arquivos do jogo usam os dois estilos. Não se aplica aos arquivos .sui,
que não têm SiiNunit.
Tabs ou espaços
A indentação segue as suas configurações do VS Code, então a formatação bate com o
que o editor faz quando você aperta Enter: editor.tabSize,
editor.insertSpaces e editor.detectIndentation, que detecta tabs num arquivo que
já os usa.
Para usar sempre tabs só nos arquivos da SCS, adicione isto ao seu settings.json:
"[sii]": { "editor.insertSpaces": false },
"[sui]": { "editor.insertSpaces": false }
Formatar todos os arquivos
Dois comandos agem em todos os arquivos .sii/.sui das pastas abertas. Rode-os
pela Paleta de Comandos (Control mais Shift mais PCtrl+Shift+P):
- SCS IntelliSense: Check Formatting of All Files lista os arquivos que mudariam, sem mudar nada. A lista vai para o Output da extensão.
- SCS IntelliSense: Format All Files formata todos, depois de pedir confirmação.