Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>SphereScript (SCP) Syntax Highlight FormatterNew to Visual Studio Code? Get it now.
SphereScript (SCP) Syntax Highlight Formatter

SphereScript (SCP) Syntax Highlight Formatter

Izoard

|
157 installs
| (1) | Free
Extension de SphereServer X para Servidor Custom 'Berks Worlds'
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

SphereScript (SCP) Syntax Highlight Formatter

Una extensión completa de Visual Studio Code para el lenguaje SphereScript (.scp) utilizado en servidores de Ultima Online basados en Sphere X.

✨ Características

🎨 Resaltado de Sintaxis

  • Secciones: [CHARDEF], [ITEMDEF], [EVENTS], etc.
  • Triggers: @CREATE, @DCLICK, @TIMER, etc.
  • Propiedades: NAME, COLOR, HITS, MANA, etc.
  • Funciones: SAY, SYSMESSAGE, DAMAGE, etc.
  • Keywords: IF, ENDIF, FOR, WHILE, etc.
  • Comentarios: // y /* */

🔧 Formateo Automático

  • Indentación inteligente basada en estructuras de control
  • Conversión a mayúsculas de palabras clave del lenguaje
  • Preservación de strings entre comillas
  • Respeto por secciones especiales (BOOK, COMMENT, etc.)
  • Cache optimizado para mejor rendimiento en archivos grandes

📝 Snippets

  • Estructuras de control: if, for, while, begin
  • Bucles especializados: forchars, forcont, foritems, forplayers, forclients, forobjs
  • Bucles avanzados: forcharlayer, forcharmemorytype, forcontid, forconttype, forinstances
  • Bloques de manejo: try, tryp, trysrc, trysrv, dorand, doswitch

🛠️ Comandos Adicionales

  • Format SCP Document (Shift+Alt+F) - Formatear documento actual
  • Validate SCP Syntax - Validar sintaxis básica del archivo
  • Clear Formatter Cache - Limpiar cache del formateador

📦 Instalación

  1. Abre Visual Studio Code
  2. Ve a Extensions (Ctrl+Shift+X)
  3. Busca "SphereScript SCP Syntax Highlight Formatter"
  4. Haz clic en "Install"

⚙️ Configuración

Configuración Básica

{
	"scpFormatter.tabSize": 1,
	"scpFormatter.batchSize": 500,
	"scpFormatter.enableCache": true
}

Configuración Avanzada

{
	"scpFormatter.preserveCase": {
		"strings": true,
		"comments": true,
		"customSections": ["BOOK", "COMMENT", "SCROLL"]
	},
	"scpFormatter.indentStyle": "tabs",
	"scpFormatter.maxLineLength": 0,
	"scpFormatter.debug": false
}

Configuración Recomendada para Archivos SCP

{
	"[scp]": {
		"editor.defaultFormatter": "Izoard.spherescript-syntax-highlight-formatter",
		"editor.formatOnSave": true,
		"editor.tabSize": 1
	}
}

Nota: editor.insertSpaces es una configuración estándar de VS Code, no específica de esta extensión.

🚀 Rendimiento

La extensión está optimizada para manejar archivos grandes mediante:

Optimizaciones Implementadas

  • ✅ Expresiones regulares pre-compiladas
  • ✅ Procesamiento por lotes inteligente (configurable via scpFormatter.batchSize)
  • ✅ Cache con limpieza automática (configurable via scpFormatter.enableCache)
  • ✅ Validación condicional de edits
  • ✅ Métricas de rendimiento en tiempo real (con scpFormatter.debug)

Nota: Los tiempos específicos pueden variar según el hardware y contenido del archivo.

📝 Ejemplo de Código SCP

[CHARDEF c_man]
NAME=Hombre
BODY=0400
STR=50
DEX=50
INT=50

ON=@CREATE
    HITS=<STR>
    MANA=<INT>
    STAM=<DEX>

    IF (<STR> > 40)
        SAY "Soy fuerte!"
    ENDIF

[ITEMDEF i_sword_magic]
NAME=Espada Mágica
TYPE=t_weapon_sword
DAM=15,25
SKILL=45.0
COLOR=colors_blue

ON=@EQUIP
    SRC.SYSMESSAGE "Sientes el poder de la magia"

[EVENTS e_player_magic]
ON=@LOGIN
    SYSMESSAGE "Bienvenido al mundo mágico"

ON=@LOGOUT
    SYSMESSAGE "Hasta la vista"

🎯 Validación de Sintaxis

La extensión incluye validación básica (comando scp.validateSyntax) que puede detectar errores comunes en la sintaxis SCP.

Nota: Esta es una validación básica, no un analizador completo del lenguaje.

🔧 Comandos

Comando Atajo Descripción
scp.formatDocument Shift+Alt+F Formatear documento SCP
scp.validateSyntax - Validar sintaxis del archivo
scp.clearCache - Limpiar cache del formateador

🛠️ Desarrollo

Compilar la Extensión

npm install
npx vsce package

Ejecutar en Modo Debug

  1. Abre el proyecto en VS Code
  2. Presiona F5 para lanzar Extension Development Host
  3. Abre un archivo .scp para probar

🐛 Resolución de Problemas

El formateo es lento en archivos grandes

  • Aumenta scpFormatter.batchSize a 1000
  • Verifica que scpFormatter.enableCache esté en true

Las palabras clave no se formatean correctamente

  • Verifica que el archivo tenga extensión .scp
  • Comprueba que la extensión esté activa

Problemas de cache

  • Ejecuta el comando "Clear Formatter Cache"
  • Reinicia VS Code si persiste el problema

🎮 Sobre SphereScript y Ultima Online

SphereScript es el lenguaje de scripting utilizado por el emulador Sphere X para crear servidores privados de Ultima Online. Este lenguaje permite definir:

  • NPCs y Personajes con comportamientos personalizados
  • Items y Objetos con propiedades únicas
  • Eventos del Juego y sistemas interactivos
  • Mecánicas de Gameplay avanzadas

Esta extensión está especialmente optimizada para el servidor "Berks Worlds" pero es compatible con cualquier implementación de Sphere X.

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE.md para detalles.

🤝 Contribuir

  1. Fork el proyecto
  2. Crea tu Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push al Branch (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

📧 Contacto

  • Proyecto: spherescript-syntax-highlight-formatter
  • Issues: Reportar un problema

🔗 Basado en extensiones

Esta extensión ha sido desarrollada para brindar soporte a Berks Worlds en Sphere X. Basada en las extensiones:

  • https://marketplace.visualstudio.com/items?itemName=fabiohvp.scp
  • https://marketplace.visualstudio.com/items?itemName=uoinfusion.sphere99
  • https://marketplace.visualstudio.com/items?itemName=Raylde.sphere-scripter-formatter

¡Disfruta programando en SphereScript! 🎯

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft