Ir para o conteúdo
Features

Diagnósticos e correções rápidas

Os problemas que o SCS IntelliSense encontra enquanto você digita, e como corrigi-los com um clique.

Os problemas são sublinhados enquanto você digita, antes mesmo de abrir o jogo. Eles também aparecem no painel Problems (Control mais Shift mais M) para todos os arquivos abertos.

Níveis

NívelSignificado
Error (vermelho)O jogo deve falhar ao carregar isto.
Warning (amarelo)Provavelmente um engano, ou contra a documentação da SCS. O jogo carrega mesmo assim.
Hint (pontilhado)Contra a documentação da SCS, mas os próprios arquivos do jogo fazem isso também.

Os níveis são escolhidos a partir dos próprios arquivos do jogo: se o jogo traz um arquivo que faz algo, isso nunca é apontado como erro.

Para esconder um nível, abra as configurações, procure por Diagnostics: Enabled Severities e desmarque-o. Por exemplo, desmarque warning e hint para ver só os erros.

O que é verificado

Estrutura (erros)

  • Um :, { ou } faltando, ou uma } sem nada para fechar.
  • Um SiiNunit { } faltando ou duplicado num arquivo .sii, ou conteúdo depois da chave que o fecha.
  • Um @include que não começa a linha: o jogo ignora um que esteja indentado.
  • Uma aspa que nunca fecha (name: "Big Engine). O texto é sublinhado até o fim da linha, e o resto do arquivo continua sendo lido como está escrito. Texto que realmente ocupa várias linhas, como nos arquivos de interface do jogo, não tem problema.

Nomes

ProblemaNível
Um nome de classe inválido (ui:: sem nada depois, um nome que começa com dígito)Error
Um nome de unit inválido: uma parte com mais de 12 caracteres, um caractere que não é letra, dígito ou _, uma parte vazia (a..b), uma aspa sem parError
Duas units com o mesmo nome num arquivo, incluindo as sem nome (.x)Error
Letras maiúsculas num nome de unitHint

Atributos

Estas precisam do banco de dados de schema, que conhece todas as classes do jogo, seus atributos e os tipos deles:

ProblemaExemploNível
Um atributo que a classe não temprcie: 18000Warning
Um valor que o atributo não aceitapart_type: factroyWarning
Algo que não é número onde vai um númeroprice: abc, unlock: 1.5Warning
Um número negativo onde só 0 ou mais é permitidounlock: -5Warning
Um vetor com a quantidade errada de númeroscolor: (1.0, 0.5) onde vão trêsWarning
Algo que não é true nem falseuse_perlin: yesWarning

As listas de atributos vêm do próprio jogo, então um atributo desconhecido quase sempre é um erro de digitação. Os números são aceitos em todas as formas que os arquivos do jogo usam: 1.5, +6, 2e-6, 25.0f, &3f800000, 0x10DE e nil; um bool também pode ser 0 ou 1.

Todas essas verificações também funcionam dentro de um fragmento .sui, usando a classe da unit que o inclui.

O fim do arquivo (warning)

Um arquivo deve terminar com uma quebra de linha. Quase todos os arquivos do jogo terminam.

Correções rápidas

Quando um problema tem uma correção óbvia, aparece uma lâmpada ao lado dele. Clique nela, ou ponha o cursor no problema e aperte Control mais .:

ProblemaCorreção
prcie: 18000Trocar por price
part_type: factroyTrocar por factory
price: "18000"Tirar as aspas
truck my.truck {Adicionar o : que falta
price 18000 ou price = 18000Trocar por price: 18000
my..truckTrocar por my.truck
"my.truckAdicionar a aspa que falta, ou tirar esta
name: "Big EngineFechar a aspa no fim da linha, ou tirá-la
Um @include indentadoMover para o começo da linha
Nenhuma quebra de linha no fimAdicionar

Shift mais Alt mais . aplica a correção na hora quando só existe uma.

Alguns problemas não têm correção rápida de propósito, porque só você sabe a resposta certa: qual de duas units duplicadas renomear, ou onde vai uma } que falta.

O que não é verificado

A extensão não lê os arquivos compactados do jogo, então não consegue saber se um caminho ou um ponteiro para um arquivo do jogo está certo. Veja Arquivos do jogo.