Description
Pascal Flow brings modern, high-performance language support for the Pascal ecosystem to JetBrains IDEs — built for reading, navigating and confidently working with both fresh and large-scale legacy Delphi and Free Pascal projects. It understands real-world code, including multiple dialects, conditional compilation and shared include files, so you get accurate highlighting, navigation and code insight out of the box.
Supported files
- Pascal sources:
.pas,.dpr,.lpr,.pp,.dpk - Include fragments:
.inc - Form files:
.dfm,.lfm,.fmx - Project files:
.lpi,.lpk,.dproj,.groupproj
Editor
- Syntax highlighting for Pascal and DFM/LFM forms, with a configurable color scheme
- Code folding, brace matching, line and block comments
- Code completion, including compiler directives
- Code formatting and dedicated code style settings
- Quick documentation and breadcrumbs
- Dialect-aware highlighting of contextual keywords and inactive (conditionally compiled) code
Navigation & refactoring
- Go to Class and Go to Symbol for units, types, routines, constants, properties and fields
- Go to Declaration on a
usesclause jumps to the referenced unit (dotted, aliased andin '…'forms included) - Gutter markers between a routine's interface declaration and its implementation — in both directions, even when the body lives in an
{$I}include - Class and interface hierarchy gutter markers: jump from a type to its supertypes, subclasses or implementing classes, and from a method to the one it overrides, the methods overriding it, the interface method it implements, or the classes implementing an interface method — across units
- Reference resolution and Find Usages, including compiler-directive include navigation, generic /
specializetypes, and nested-procedure and anonymous-method scopes - Rename refactoring backed by named-element PSI
- Structure view for fast in-file navigation
Code inspections
- Empty
begin/endblock - Duplicate class/record/interface member
- Unused local declaration
- Missing
overridedirective - Redundant routine directive
- Unbalanced compiler directive
- Trailing comma in
usesclause
Parser & conditional compilation
- Realistic Delphi/FPC parsing of generics, anonymous methods, inline variables, helpers, class operators, variant records and assembler blocks
- Wide dialect coverage — Delphi, Free Pascal, Turbo Pascal and MacPas — including context-sensitive operators, objc classes,
specialize-qualified types and the full range of routine and variable modifiers {$IFDEF}evaluation with project-configurable conditional defines, plus MacPas{$ifc}/{$setc}/{$endc}directives- Include-aware indexing that propagates
{$I}include defines across the project, including units whoseinterfaceor program body is supplied by an include - Tolerant of real-world quirks: keyword-named identifiers, trailing tokens after
end.and label-lesscasestatements