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)
O arquivo de projeto pode ser aberto rapidamente pelo item PawnPro na barra de status. As configurações também podem ser editadas pela interface gráfica acessível via comando pawnpro.openSettings ou pelo item Configurações no menu da barra de status.
Detecta pawncc automaticamente. Ordem de busca: variável de ambiente $PAWNCC, $PATH, subdiretórios do workspace (qawno/, pawno/, include/, tools/, bin/), caminhos comuns do sistema
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 adicionais passados ao compilador
includePaths
["${workspaceFolder}/pawno/include"]
Diretórios de includes; suporta ${workspaceFolder}. Em runtime, a extensão também adiciona automaticamente qawno/include, pawno/include e include da raiz do workspace se existirem, além de paths vindos de -i em compiler.args
output.encoding
"windows1252"
Encoding da saída do compilador (windows1252, utf8, 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; se não encontrar, assume SA-MP. O painel de configurações gráfico expõe apenas omp, samp e none — "auto" só é configurável via JSON
analysis.sdk.filePath
""
Caminho manual para o arquivo SDK centralizador (necessário principalmente para SA-MP, onde não há convenção de nome automática)
Comprimento mínimo antes de sinalizar (índices de loop são tolerados)
analysis.naming.maxListFileBytes
33554432
Limite (bytes) que a engine processa 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). Tem prioridade 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 estilo da lista. 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"
Encoding do arquivo de log (windows1252, utf8, 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"