budden / vscode-language-blackboxcomponentbuilder

Pascal language extension for Visual Studio Code

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Что здесь есть?

Раскраска компонентного Паскаля (файлы .kp и .cp). Сделано на основе режима для обычного Паскаля (см. откуда сделан форк).

По вопросам установки и разработки см. http://вече.программирование-по-русски.рф/viewtopic.php?f=2&t=22

Далее следует файл ПРОЧТИМЯ от режимя для Паскаля.

What's new in Pascal 7

  • Multi-root Support
  • Visual Studio Live Share support
  • Better Code Navigation

Pascal for Visual Studio Code

Pascal is an open source extension created for Visual Studio Code. While being free and open source, if you find it useful, please consider supporting it

It adds support for the Pascal language and its dialects like Delphi and FreePascal.

Here are some of the features that Pascal provides:

  • Syntax highlighting for files, forms and projects
  • A huge set of Snippets
  • Support for different Code Formatters
  • Source code navigation

Features

Coding with style

Syntax Highlighting

Pascal supports full syntax highlighting for Delphi and FreePascal

syntax

Snippets

Almost 40 snippets are available

snippets

Format Code

Standardise your Pascal code!

It uses external tools (engines) to format the code, so you must install them prior to use the Format Document and Format Selection commands.

If you intend to format pieces of selected texts instead of the entire file, you should use FreePascal PToP, because the Jedi Code Format only works for entire files.

Available settings

You can choose which formatter engine to use (required):

  • ptop: FreePascal PToP
  • jcf: Jedi Code Formatter
    "pascal.formatter.engine": "ptop"
  • Indicates the engine app path (required)
    "pascal.formatter.enginePath": "C:\\FPC\\2.6.4\\bin\\i386-win32\\ptop.exe" 
  • Indicates the configuration file for the selected engine (optional)
    "pascal.formatter.engineParameters": "C:\\FPC\\2.6.4\\bin\\i386-win32\\default.cfg"

Code Navigation

Navigate to any language element (methods, attributes, classes, interfaces, and so on) inside Pascal files. It supports native VS Code commands like:

  • Go to Symbol
  • Go to Definition
  • Peek Definition
  • Find All References

It uses GNU Global, a source code tagging system, which means that it has some limitations if you compare with an AST parsing.

Installing and Configuring GNU Global

  1. You have to install 4 tools:
  1. Update your %PATH% Environment Variable (System)

Let's say you extract GNU Global and CTags in C:\gnu folder. The two new entries in %PATH% should be:

  • GNU Global: C:\gnu\glo653wb\bin
  • Excuberant Tags: C:\gnu\ctags58\ctags58

Also make sure Python is in %PATH%

  1. Create 2 new Environment Variables (System)

GNU Global uses CTags + Python Pygments as plugin in order to recognizes Pascal source code, so you have to configure them.

  • GTAGSCONF: C:\gnu\glo653wb\share\gtags\gtags.conf
  • GTAGSLABEL: pygments

py-envvar

NOTE: For now, it was tested only on Windows, but since these tools are multiplatform (in fact, it comes from Unix), it should work on Linux and Mac.

Available commands

Code Formatter

The extension seamlessly integrates with the Format Document and Format Selection commands Visual Studio Code.

format-code

There is also:

  • Pascal: Edit Formatter Parameters Opens/Generate the parameters file for the selected engine

Code Navigation

To enable Code Navigation, the extension depends on GNU Global and Exuberant Tags and for that, you must run gtags on the Root folder, so the tags are created. In order to make life easier, two commands where added:

  • Pascal: Generate Tags: Use this to create or reset the tags in the current project. You just have to do it once.
  • Pascal: Update Tags: Use this to update the tags for current project. You should use this command to update the references when any source code is updated.

Available Settings

Controls how the code navigation should work. Specially useful if you work with huge projects

  • workspace: Full featured code navigation
  • file: Limited to Go to Symbol in File command
    "pascal.codeNavigation": "workspace"
  • Controls if the extension should automatically generate tags in projects opened for the first time
    "pascal.tags.autoGenerate": true

For huge projects, its recommended to use:

    "pascal.codeNavigation": "file",
    "pascal.tags.autoGenerate": false

Task Build

Use this Task Examples, so you can:

  • Compile Delphi and FreePascal projects:
  • Navigate to Errors/Warnings/Hints, using the native View / Errors and Warnings command

compile

Building Tasks

If you want to build tasks (Task: Run Task Build) you can use the snippets below.

Delphi

Update two tags:

  • DCC32.EXE_PATH: The compiler location
  • YOUR_DELPHI_PROJECT.DPR: The project being built.
    {
		"version": "0.1.0",
		"windows": {
			"command": "DCC32.EXE_PATH"
		},
		"isShellCommand": true,
		"showOutput": "always",
		"args": ["YOUR_DELPHI_PROJECT.DPR"],
		"problemMatcher": {
			"owner": "external",
			"pattern": {
				"regexp": "^([\\w]+\\.(pas|dpr|dpk))\\((\\d+)\\)\\s(Fatal|Error|Warning|Hint):(.*)",
				"file": 1,
				"line": 3,
				"message": 5
			}
		}
    }

FreePascal

Update two tags:

  • FPC_BIN_PATH: The full compiler location. If its PATH is already in Environment Variables, simply use FPC_BIN filename
  • YOUR_FREEPASCAL_PROJECT_OR_FILE: The project/file being built.
    {
		"version": "0.1.0",
		"windows": {
			"command": "FPC_BIN_PATH"
		},
		"linux": {
			"command": "FPC_BIN_PATH"
		},
		"isShellCommand": true,
		"showOutput": "always",
		"args": ["YOUR_FREEPASCAL_PROJECT_OR_FILE"],
		"problemMatcher": {
			"owner": "external",
			"pattern": {
				"regexp": "^([\\w]+\\.(p|pp|pas))\\((\\d+)\\,(\\d+)\\)\\s(Fatal|Error|Warning|Note):(.*)",
				"file": 1,
				"line": 3,
				"column": 4,
				"message": 6
			}
		}
    }

Support Pascal

While Pascal is free and open source, if you find it useful, please consider supporting it.

I've been building Pascal since VS Code internal beta days, and while I enjoy developing it, I would like to be able to give more attention to its growth.

License

MIT © Alessandro Fragnani

About

Pascal language extension for Visual Studio Code

License:MIT License


Languages

Language:TypeScript 90.9%Language:Modula-2 8.5%Language:AMPL 0.6%