As configurações do PawnPro são gerenciadas por arquivos JSON — não pelas configurações do editor.
Arquivos de configuração
Arquivo
Escopo
~/.pawnpro/config.json
Global (todos os projetos)
.pawnpro/config.json
Projeto (sobrescreve global)
.pawnpro/state.json
Estado local (favoritos, histórico do servidor)
Nada precisa ser editado à mão: a página de configurações (pawnpro.openSettings, ou Configurações no menu do item PawnPro da barra de status) cobre todas as chaves. O arquivo do projeto prevalece sobre o global, chave a chave; um valor com tipo errado é ignorado e cai no padrão, sem descartar o resto do arquivo.
Procura o pawncc quando compiler.path está vazio ou não serve. Ordem: variável de ambiente PAWNCC (vale sempre), compiler.path, PATH, pastas do projeto (qawno/, pawno/, include/, tools/, bin/) e caminhos comuns do sistema. Desligado, um compiler.path inválido é erro
compiler.path
""
Caminho absoluto para o executável pawncc. Se apontar para um diretório, procura pawncc dentro dele. No painel de configurações gráfico, este campo fica oculto enquanto compiler.autoDetect está ligado (a detecção automática torna o caminho manual irrelevante); desligue a detecção automática para exibi-lo e editá-lo
compiler.args
[]
Argumentos passados ao compilador. Vazio: a extensão detecta as flags que o pawncc local aceita e aplica um conjunto mínimo. Flags que o compilador não aceita são removidas e informadas
includePaths
["${workspaceFolder}/pawno/include"]
Diretórios de includes; suporta ${workspaceFolder}. Também entram, se existirem, os caminhos de -i em compiler.args e qawno/include, pawno/include e include da raiz do workspace. Sem nenhum desses na raiz, procura a pasta de include subindo a partir do arquivo aberto
output.encoding
"windows1252"
Codificação da saída do compilador: utf8, windows1250–windows1257 ou latin1
build.showCommand
false
Exibe o comando completo do compilador no painel de saída
Suprime todos os diagnósticos dentro de arquivos .inc
analysis.sdk.platform
"auto"
SDK base: "auto", "omp", "samp" ou "none". "auto" procura open.mp.inc primeiro em <workspace>/qawno/include/, depois nos includePaths; sem ele, as nativas vêm dos includes, como no SA-MP
analysis.sdk.filePath
""
Caminho manual para o arquivo SDK centralizador. Vence a detecção, mas só se existir: um caminho inválido não cai num palpite
Comprimento mínimo antes de sinalizar (índices de loop são tolerados)
analysis.naming.maxListFileBytes
33554432
Limite (bytes) lido de cada arquivo .ban/.allow. Não impede editá-los
analysis.naming.blocklistFile
.pawnpro/naming-blocklist.ban
Arquivo com os nomes proibidos (um por linha, # comenta). Com pelo menos um termo, prevalece sobre a lista inline
analysis.naming.loopIndicesFile
.pawnpro/naming-loop-indices.allow
Arquivo com os índices de loop tolerados
analysis.naming.style.<categoria>
[]
Lista de estilos aceitos por categoria (functions, globals, locals, constants, macros, parameters). Lista vazia = sem checagem; o nome é aceito se casar com qualquer item. Além dos estilos, um item entre barras (/^g_[a-z]+$/) é um padrão próprio por expressão regular. Ver Nomenclaturas aceitas abaixo
As listas grandes (blocklist/allowShortInLoops) ficam nos arquivos .ban/.allow, não no JSON. Ver o guia de listas de nomes.
Nomenclaturas aceitas
Cada item da lista de uma categoria é uma destas convenções de caixa. Um nome é aceito se casar com pelo menos uma das convenções configuradas para a categoria dele.
Valor
Convenção
Casa
Não casa
camelCase
Primeira palavra minúscula, demais capitalizadas, sem _
playerScore, protZ, count
PlayerScore, player_score
snake_case
Tudo minúsculo, palavras separadas por _
player_score, carregar_lixeiras, count
playerScore, PlayerScore
PascalCase
Cada palavra capitalizada, sem _
PlayerScore, Palavrao, CarregarLixeiras
playerScore, Carregar_Lixeiras
UPPER_CASE
Tudo maiúsculo, palavras separadas por _
MAX_PLAYERS, PALAVRAO, LIMIT
maxPlayers, Max_Players
Capitalized_Snake
Cada trecho separado por _ começa com maiúscula e tem ao menos uma minúscula; o _ é opcional
Capitalized_Snake engloba PascalCase. Como o _ é opcional, todo nome que casa PascalCase (ex.: Palavrao, CarregarLixeiras) também casa Capitalized_Snake; a diferença é que Capitalized_Snake aceita também os separados por _ (ex.: Carregar_Lixeiras). Na prática, marcar Capitalized_Snake numa categoria já cobre os nomes em PascalCase.
Um _ inicial é ignorado antes da checagem (_count é avaliado como count). Convém para descartes e nomes "privados".
Dígitos não desqualificam nenhum estilo; ficam grudados na palavra anterior (slot1 é uma palavra).
A checagem é por categoria: o mesmo nome pode ser aceito como função e sinalizado como macro, conforme os estilos de cada uma. Os quick fixes (renomear) oferecem a conversão para os estilos configurados.
Caminho para o executável do servidor. Vazio ativa detecção automática nos subdiretórios do workspace: raiz, server/, samp/, samp-server/, samp03/, open.mp/
server.cwd
"${workspaceFolder}"
Diretório de trabalho ao iniciar o servidor. Se vazio e server.path está preenchido, usa o diretório do executável
server.args
[]
Argumentos adicionais passados ao executável
server.logPath
""
Caminho do arquivo de log a ser monitorado. Vazio: SA-MP usa server_log.txt; open.mp usa o valor de logging.file em config.json (padrão log.txt). O monitoramento de log funciona somente em Linux e macOS
server.logEncoding
"windows1252"
Codificação do arquivo de log: utf8, windows1250–windows1257 ou latin1
server.clearOnStart
true
Limpa o painel de saída ao (re)iniciar o servidor
server.output.follow
"visible"
Rola automaticamente o painel de log: "visible" (quando visível), "always" ou "off"
server.history.enabled
true
Guarda em .pawnpro/state.json os comandos enviados ao servidor. false não registra nada. O arquivo é criado com permissão restrita ao seu usuário e não deve entrar no controle de versão
server.history.sensitiveCommands
[]
Comandos do seu gamemode que recebem senha ou token e não devem ser guardados, além dos que a extensão já reconhece (login, rcon_password, password, changepassword, setpassword, senha anunciada por rótulo como --senha abc e argumentos com cara de credencial — ver Servidor). Comparados pelo primeiro termo, sem diferenciar maiúsculas
Tema de sintaxe ativo: "none", "auto", "classic_white", "classic_dark", "modern_white", "modern_dark"
syntax.applyOnStartup
false
Reaplicar o esquema ao iniciar (gerenciado automaticamente pelos comandos applySyntaxScheme e resetSyntaxScheme)
ui.showIncludePaths
false
Exibe o caminho relativo de cada arquivo .inc na aba Includes da barra lateral
ui.animateTitle
false
Anima as letras do título PawnPro no topo das páginas em sequência (teclado → bloco → cair), em loop com pausa
ui.accent
""
Cor de destaque das páginas da extensão (botões, item ativo, foco, badges): "" (automático, herda do tema do editor), "blue", "purple", "green", "amber", "pink" ou "teal". Não altera o realce de sintaxe
ui.locale
""
Idioma das páginas da extensão (Configurações, Ajuda, O que há de novo): "" (automático, segue o editor), "pt-BR", "en", "es", "ro" ou "ru". Independente de locale
locale
""
Idioma dos diagnósticos do motor LSP e do debugger: "" (automático, segue o editor), "pt-BR", "en", "es", "ro" ou "ru"
Diagnóstico
{"diagnostics":{"level":"off"}}
Chave
Padrão
Descrição
diagnostics.level
"off"
Registro do que a extensão, o núcleo e a engine fazem, em .pawnpro/logs/: "off", "error", "warn" ou "info". Desligado, nada é escrito e nenhuma pasta é criada. Também ajustável pelo comando PawnPro: Nível do diagnóstico