Pascal es una extensión de código abierto creada para el código Visual Studio . Si bien es gratuito y de código abierto, si lo encuentra útil, considere apoyarlo
Agrega soporte para el lenguaje Pascal y sus dialectos como Delphi y Freepascal .
Estas son algunas de las características que proporciona Pascal :
Pascal admite resaltado de sintaxis completo para Delphi y Freepascal

Están disponibles casi 40 fragmentos

Echa un vistazo a la documentación de Pascal Formatter.
Navegue a cualquier elemento de idioma (métodos, atributos, clases, interfaces, etc.) dentro de los archivos Pascal. Admite comandos nativos de código VS como:
Utiliza GNU Global, un sistema de etiquetado de código fuente, lo que significa que tiene algunas limitaciones si se compara con un análisis AST.
pip install Pygments )%PATH% ( sistema ) Digamos que extrae GNU Global y CTAGS en la carpeta C:gnu . Las dos nuevas entradas en %PATH% deberían ser:
C:gnuglo653wbbinC:gnuctags58ctags58 También asegúrese de que Python esté en %PATH%
GNU Global utiliza pygmentos CTAGS + Python como complemento para reconocer el código fuente de Pascal, por lo que debe configurarlos.
GTAGSCONF : C:gnuglo653wbsharegtagsgtags.confGTAGSLABEL : pygments 
Nota: Por ahora, se probó solo en Windows, pero dado que estas herramientas son multiplataforma (de hecho, proviene de UNIX), debería funcionar en Linux y Mac.
Para habilitar la navegación del código , la extensión depende de las etiquetas GNU Global y Exuberant y para eso, debe ejecutar gtags en la carpeta raíz, por lo que se crean las etiquetas. Para facilitar la vida, dos comandos donde se agregan:
Controla cómo debería funcionar la navegación del código. Especialmente útil si trabaja con grandes proyectos
workspace : navegación de código completofile : Limitado para Go to Symbol in File "pascal.codeNavigation" : " workspace " "pascal.tags.autoGenerate" : truePara grandes proyectos, se recomienda usar:
"pascal.codeNavigation" : " file " ,
"pascal.tags.autoGenerate" : falseUse estos ejemplos de tareas , para que pueda:

Si desea crear tareas (tarea: ejecutar tarea compilación) puede usar los fragmentos a continuación.
Actualizar dos etiquetas:
DCC32.EXE_PATH : la ubicación del compiladorYOUR_DELPHI_PROJECT.DPR : el proyecto que se está construyendo. "version": "2.0.0",
"tasks": [
{
"label": "Pascal",
"type": "shell",
"windows": {
"command": "DCC32.EXE_PATH"
},
"linux": {
"command": "FPC_BIN_PATH"
},
"presentation": {
"reveal": "always",
"panel": "new"
},
"args": [
{
"value": ""YOUR_DELPHI_PROJECT.DPR"",
"quoting": "escape"
}
],
"problemMatcher": {
"owner": "external",
"pattern": {
"regexp": "^(.*.(pas|dpr|dpk))\((\d+)\)\s(Fatal|Error|Warning|Hint):(.*)",
"file": 1,
"location": 3,
"message": 5
}
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
Actualizar dos etiquetas:
FPC_BIN_PATH : la ubicación del compilador completo. Si su PATH ya está en variables de entorno , simplemente use el nombre de archivo FPC_BINYOUR_FREEPASCAL_PROJECT_OR_FILE : el proyecto/archivo que se está construyendo.
{
"version": "2.0.0",
"tasks": [
{
"label": "Pascal",
"type": "shell",
"windows": {
"command": "FPC_BIN_PATH"
},
"linux": {
"command": "FPC_BIN_PATH"
},
"presentation": {
"reveal": "always",
"panel": "new"
},
"args": [
{
"value": "YOUR_FREEPASCAL_PROJECT_OR_FILE",
"quoting": "escape"
}
],
"problemMatcher": {
"owner": "external",
"pattern": {
"regexp": "^([\w]+\.(p|pp|pas))\((\d+)\,(\d+)\)\s(Fatal|Error|Warning|Note):(.*)",
"file": 1,
"line": 3,
"column": 4,
"message": 6
}
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Un agradecimiento especial a las personas que han contribuido al proyecto:
También gracias a todos los que ayudaron a abrir problemas con ideas e informes de errores.
MIT © Alessandro Fragnani