Get instant documentation and parameter hints for Clarion functions and methods.
The Clarion Extension provides two main documentation features:
- Signature Help - Parameter hints when calling functions/methods
- Hover Documentation - Information when hovering over symbols
Shows parameter information when you type an opening parenthesis:
SUB( ← Type opening parenthesisPop-up shows:
SUB(string, start, <length>)
Returns a substring from a string.
Parameters:
string - Source string
start - Starting position (1-based)
length - Number of characters (optional)
Signature help triggers when you:
- Type
(after a function/method name - Type
,to move to next parameter - Press
Ctrl+Shift+Spacemanually
It appears for:
- Built-in Clarion functions (310 functions)
- Custom procedure calls
- Class method calls (with overload support)
310 Clarion built-in functions documented:
SUB(string, start, <length>)- Extract substringCLIP(string)- Remove trailing spacesUPPER(string)- Convert to uppercaseLOWER(string)- Convert to lowercaseLEN(string)- Get string lengthINSTRING(pattern, source, <case>, <start>)- Find substringLEFT(string)- Left trim spacesRIGHT(string)- Right justifyCENTER(string)- Center stringALL(string, length)- Repeat stringDEFORMAT(string, picture)- Remove formattingFORMAT(value, picture)- Apply formatting
ABS(number)- Absolute valueINT(number)- Integer portionROUND(number, decimals)- Round to decimalsSQRT(number)- Square rootNUMERIC(string)- Convert string to numberVAL(string)- String to numberSIN(angle),COS(angle),TAN(angle)- TrigonometryLOG(number),EXP(number)- Logarithms
TODAY()- Current dateCLOCK()- Current timeDATE(month, day, year)- Create dateDAY(date)- Extract dayMONTH(date)- Extract monthYEAR(date)- Extract yearAGE(date, <basedate>)- Calculate age
RECORDS(file)- Get record countPOINTER(file)- Get current positionEOF(file)- Check end of fileERROR()- Get last errorERRORCODE()- Detailed error codeCONTENTS(variable)- Variable address
For methods with multiple signatures:
MyObj.Process( ← Multiple overloads availableShows:
1 of 3 ↑↓ use arrows
Process(STRING value)
Process(*STRING reference)
Process(<STRING optional>)
Features:
- Cycle through overloads with arrow keys
- Shows parameter count:
1 of 3 - Highlights current parameter
- Automatically resolves to correct overload based on parameters
When calling a function like OPEN(Window), hover shows only the overloads relevant to a WINDOW argument — not all 8 signatures. The extension infers the structureType (FILE, VIEW, WINDOW, REPORT, etc.) from the argument label and filters signatures accordingly.
Show/Hide Signature Help:
Ctrl+Shift+Space- Manually trigger signature helpEscape- Close signature help
Navigate Parameters:
- Type
,- Move to next parameter - Signature help updates automatically
Navigate Overloads:
↑↓Arrow keys - Cycle through method overloads
Shows information when you hover mouse over a symbol:
- Hover over procedure name → See declaration and implementation preview
- Hover over variable → See type, scope, and location
- Hover over built-in function → See full documentation
- Hover over INCLUDE → Preview file contents
- Hover over method → See signature and implementation
- Hover over any
PROP:runtime property equate (e.g.PROP:Enabled) shows description, read-only badge, and usage example. Covers 336 PROP: entries and 25 PROPPRINT: entries. - Hover over any
EVENT:equate shows category (Field-Specific / Field-Independent / DDE) and description. 63 events covered includingEVENT:User.
HIDE, DISABLE, and TYPE show different documentation depending on context:
- Inside a WINDOW/REPORT structure: shows the control attribute usage and PROP: equate
- Outside: shows the statement/function usage
Example: Hover over SUB
Shows:
SUB(string, start, <length>): STRING
Returns a substring from a string.
Parameters:
string - Source string
start - Starting position (1-based)
length - Number of characters (optional, defaults to end)
Returns:
STRING - The extracted substring
Example:
Result = SUB('Hello World', 7, 5) ! Returns 'World'
Shows variable information:
MyVar STRING(100) ! ← Hover here
Shows:
---
Local procedure variable: MyVar
Type: STRING(100)
Declared: Line 45
Scope: Procedure-local
---Scope-aware:
- Distinguishes local vs global variables
- Shows correct scope (procedure, routine, module, global)
Shows both declaration and implementation:
MyProc() ! ← Hover here
Shows:
---
MAP Declaration:
MyProc PROCEDURE(STRING param)
Implementation: (first 10 lines)
MyProc PROCEDURE(STRING param)
CODE
x = 10
! ... more lines ...
File: MyApp.clw (Line 234)
---Shows file preview:
INCLUDE('MyFile.inc') ! ← Hover shows first 20 lines
INCLUDE('MyFile.inc', 'MySection') ! ← Hover shows only MySectionThis extension does NOT show:
- Dropdown list as you type
- Function/variable suggestions while typing
- Auto-complete for half-typed words
Why: The extension doesn't have a CompletionProvider. It only provides documentation for functions you're already calling.
Snippets for code structures:
- Type
IFthenTab→ Full IF/THEN/END structure - Type
VSthenTab→ String variable declaration - 50+ code snippets available
- Start typing function name:
SUB - Type opening parenthesis:
( - Signature help appears automatically
- Type parameters, use
,to move to next
- Type function name (from memory or docs)
- Type
( - Read parameter hints
- Fill in parameters
- Hover over any function call
- Read full documentation
- See examples and return types
- Press
Escapeto close
The extension assumes you know function names. Use:
- Clarion Language Reference
- Online documentation
- Code examples
Then use signature help to remember parameters.
Check:
- You typed
(after function/method name - Function is a recognized built-in or procedure
- Cursor is inside the parentheses
Try:
- Press
Ctrl+Shift+Spacemanually - Check you're in a CODE section
- Reload window:
Ctrl+Shift+P→ "Developer: Reload Window"
Possible causes:
- Function name spelled incorrectly
- Multiple overloads (use arrow keys to cycle)
- Custom procedure not properly declared
Check:
- You're hovering over a valid symbol
- Symbol is declared in scope
- File is part of solution
Try:
- Hover longer (slight delay)
- Check symbol is spelled correctly
- Verify F12 works (same resolution system)
- Navigation - F12 uses same symbol resolution
- Code Editing - Snippets for quick code entry
- Common Tasks - Usage examples