Skip to content

NiceFeatures/amxxpawn-language

 
 

Repository files navigation

AMXXPawn Language - Extended

AMXXPawn Language Extended Logo

AMXXPawn Language - Extended

Uma experiência de desenvolvimento moderna e estendida para a clássica linguagem AMXXPawn, diretamente no seu VS Code.

Important

DISCLAIMER: This extension ("AMXXPawn Language - Extended") is a fork of the original AMXXPawn Language extension by KliPPy. It is not affiliated with the original author. This fork includes specific enhancements for local workflows, improved compilation tasks, and targeted syntax additions that are not present in the original version.

Visual Studio Marketplace Version Visual Studio Marketplace Installs Open VSX Installs


Este projeto ressuscita e moderniza a experiência de desenvolvimento para scripters de AMX Mod X. Se você ama criar plugins para Half-Life, Counter-Strike 1.6 e outros mods GoldSrc, mas sente falta das ferramentas modernas, esta extensão é para você.

Ela transforma o VS Code em uma IDE poderosa para Pawn, trazendo funcionalidades que antes eram exclusivas de linguagens mais novas.

✨ Funcionalidades Principais (Versão Extended)

Diferente do original, esta versão Extended traz otimizações focadas em workflows locais e customizados, juntamente com todas as ferramentas de Language Server:

  • 🟢 IntelliSense Avançado: Autocompletar para funções, constantes e variáveis.
  • 🎯 Navegação de Código Inteligente (Go to Definition): Pressione Ctrl+Click para pular instantaneamente para a definição de:
    • Funções (incluindo public, stock, native e com prefixo @).
    • Constantes definidas com #define.
    • Variáveis globais.
    • Funções em Tasks: Navegue diretamente para a função quando o nome dela é passado como texto (ex: set_task_ex(..., "minha_funcao", ...)).
  • 🔍 Find All References: Shift+F12 em qualquer símbolo para encontrar todas as ocorrências no documento atual e nos includes carregados.
  • ✏️ Rename Symbol: F2 para renomear variáveis, funções ou constantes em todo o documento — com proteção contra renomear keywords reservadas do Pawn.
  • 💡 Informações ao Passar o Mouse (Hover): Passe o mouse sobre uma função ou variável para ver sua definição completa sem sair do lugar.
  • ⚡ Diagnósticos em Tempo Real: A extensão avisa se um #include não pode ser encontrado, ajudando a corrigir erros antes mesmo de compilar.
  • 🔴 Inline Error Display: Erros de compilação aparecem diretamente na linha do código como texto inline, além do sublinhado vermelho tradicional.
  • 📥 Download Automático do Compilador (Zero Configuração): Não configurou um compilador? A extensão baixa e configura o compilador automaticamente para você.
  • 🛠️ Compilação Integrada: Compile seus plugins diretamente do VS Code com um único comando ou pelo botão ▶️ na barra do editor.

🚀 Instalação

  1. Instale o Visual Studio Code.
  2. Abra a aba de Extensões (Ctrl+Shift+X).
  3. Procure por AMXXPawn Language Service.
  4. Clique em Instalar.
  5. Recarregue o VS Code e aproveite!

Você também pode instalar diretamente pela página do Marketplace.

⚙️ Configuração (Opcional - Customização)

Por padrão, a extensão baixa e configura automaticamente o compilador AMXX (Zero Configuração!). Porém, se você quiser usar um compilador próprio ou de uma versão específica, você pode informar o caminho para a extensão.

  1. Abra as Configurações do VS Code (Ctrl + ,).
  2. Clique no ícone de "Abrir settings.json" no canto superior direito.
  3. Adicione as seguintes propriedades ao seu settings.json:
{
    // ...outras configurações...

    // Caminho para o executável do compilador amxxpc.
    // (Deixe vazio ou não defina nada para usar o compilador padrão auto-baixado)
    "amxxpawn.compiler.executablePath": "C:\\caminho\\para\\seu\\compiler\\amxxpc.exe",

    // Lista de pastas onde a extensão deve procurar por arquivos .inc.
    // (Deixe vazio para usar a pasta include do compilador padrão auto-baixado)
    "amxxpawn.compiler.includePaths": [
        "C:\\caminho\\para\\seu\\compiler\\include"
    ],

    // Habilita ou desabilita avisos de erro inline no final da linha (falso por padrão).
    // Deixe falso se você usa extensões como Error Lens para evitar mensagens duplicadas.
    "amxxpawn.compiler.inlineErrors": false,

    // --- CONFIGURAÇÃO RECOMENDADA ---
    // Para uma experiência de autocomplete mais limpa e inteligente,
    // desativando sugestões genéricas baseadas em palavras do arquivo.
    "editor.wordBasedSuggestions": "off"
}

IMPORTANTE para usuários Windows: Em arquivos JSON, você deve usar barras invertidas duplas (\\) ou barras normais (/) nos caminhos.

Exemplo Prático:

{
    "amxxpawn.compiler.executablePath": "C:/AMXX/compiler/amxxpc.exe",
    "amxxpawn.compiler.includePaths": [
        "C:/AMXX/compiler/include"
    ]
}

⌨️ Comandos Disponíveis

Abra a Paleta de Comandos (Ctrl+Shift+P) e digite AMXXPawn para ver os comandos disponíveis:

  • AMXXPawn: Compile Plugin: Compila o arquivo .sma atualmente aberto usando o executablePath definido nas configurações.
  • AMXXPawn: Compile Plugin Local: Procura e usa um amxxpc.exe que esteja na mesma pasta do arquivo .sma que você está editando.

Atalhos de Teclado

Atalho Ação Descrição
Ctrl+Click Go to Definition Pula para a definição do símbolo sob o cursor
Shift+F12 Find All References Encontra todas as ocorrências do símbolo no documento e includes
F2 Rename Symbol Renomeia todas as ocorrências de uma variável, função ou constante
▶️ botão Compile Plugin Clique no botão play na barra do editor para compilar

🛠️ Para Desenvolvedores e Contribuidores

Este projeto é uma modernização de uma base de código legada, agora utilizando TypeScript e as APIs mais recentes do vscode-languageclient. Contribuições são muito bem-vindas!

Para compilar e testar localmente:

  1. Clone o repositório: git clone https://github.com/NiceFeatures/amxxpawn-language.git
  2. Instale as dependências: npm install
  3. Compile e faça o bundle (esbuild): npm run esbuild
  4. Abra o projeto no VS Code e pressione F5 para iniciar uma sessão de depuração.

🙏 Agradecimentos

Este projeto é uma continuação e modernização do trabalho incrível feito originalmente por KliPPy. Todo o crédito pela base sólida e pela ideia original vai para ele.

📄 Licença

Este projeto é licenciado sob a GPL-3.0. Veja o arquivo LICENSE para mais detalhes.

About

AMXXPawn Language Service for Visual Studio Code

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 98.0%
  • JavaScript 2.0%