Retrieves functions, symbols, bookmarks from text or source files and lists references in a side editor. Clicking a references will reveal the corresponding position in text or source file.
New Version -> History
reworked virtual document handling
Change of Behavior
source files can't have multiple reference lists anymore
only temporary lists with slanted (tab) titles are updated correctly
- open a source file (.c .h .cpp .hpp .ts .php .ps1 .asm)
- select
F1 > Show Functions
- a side editor opens and shows a reference list
- click a reference
extensions
list of file extension strings
native
regular expression to match functions, symbols, bookmarks
(native does not allow regEx groups)
display
regular expression to trim matches of nativeFilter for clean display
(display allows regEx groups 0-9 in options, see examples)
sort
0 = unsorted, order of appearance (appear)
1 = sorted, ignore case (nocase)
2 = sorted, obey case (case)
doubleSpacing
extended space in symbol list
false = off
true = on
Settings should look like this
"funcList": {
"doubleSpacing": false,
"filters": [
{
"extensions": [
".c",
".h"
],
"native": "/^[a-z]+\\s+\\w+\\(/mgi",
"display": "/\\S* +(\\w+)/1",
"sort": 0
},
{
...
}
]
}
Add your own filetypes and filters
- open settings with 'Menu/File/Preferences/Settings'
- enter funcList in the search field
- choose User or Workspace Settings
- click 'Edit in settings.json'
- place the cursor to a fitting place
- type funcList and hit enter to insert predefined settings
- edit them after your needs
- check for correct bracing and commas
- see -> Hints for easy regEx testing
"native": "/(?:^|\\s)function\\s+\\w+\\(/mg"
function encodeLocation(
function dispose(
simple functions will be found
"display": "/\\s*function\\s+(\\w+)/1"
encodeLocation
dispose
function names without keyword and opening bracket will be displayed
(Thanks to Avol-V)
"native": "/^[a-z]+\\s+\\w+\\(/mgi"
or
"native": "/^[a-z]+\\s+.*{][)$/img"
(Thanks to sungoth)
int main(
void initSerial(
simple function headers will be found
"display": "/\\S* +(\\w+)/1"
main
initSerial
function names without return value and opening bracket will be displayed
"native": "/^\\w+:\\s*$/mg"
encodeByte:
doSleep:
standalone targets on beginning of lines are found
mar01: mov r0,r1
abc17: ;comment
targets with following instruction or comment are not found
"display": "/\\w+/"
encodeByte
doSleep
targets are listed without colon or trailing spaces
"native": "/(?:^def|^class|^\\s+def|^\\s+class)\\s\\w+\\s*\\((?:\\s*|\\w+|[\\w\\*,\\s\\'\"=\\(\\)\\{\\}\\[\\]\\/\\.]+)\\):/img"
"display": "/.*\\)/"
(Thanks to Derek)
"native": "/function\\s+\\w+-?\\w*\\s*{/img"
"display": "/function\\s+(\\w+-?\\w*)/1i"
(Thanks to Paradox355)
"native": "/^bookmark .+$/mg"
bookmark my mark 123
bookmark huubaBooba
or similar will be found
"display": "/\\w+\\s+(.*\\w)/1"
my mark 123
huubaBooba
will be listed
- to show pure results of native filter use
"display": "/.*/"
- reference lists contribute two context menu entries
'Switch Sort' for switching sort modes
'Refresh' for manual refreshing the reference list - reference list tab names are surrounded by brackets
- reference lists are read only and can't be saved
- multiple found references are marked with bracketed numbers
selectable with consecutive clicks - easy testing with online regEx engines
for example regex101.com
(omit regEx groups in display filter for testing) - settings from previous versions can be deleted
"funcList.xxx": "xxx"
-
V0.5
based on document content provider
reference lists are read only and have to be closed and reopened for refresh and therefore loose user set width -
V0.6
based on untitled file scheme
reference lists are editable and refresh keeps user set width -
V0.6.1
strip CR/LF from native filter to resolve Issue 1
example for TypeScript filter
revised examples -
V7.0.0
back to (improved) document content provider
reference lists are read only and keep user set width
no side effects when closing document or vscode -
V7.1.0
new option 'doubleSpacing' -> Settings
fixed CR/LF bug for Unix/Linux/MacOS documents, addresses again Issue 1 -
V7.1.1
new example filter for PowerShell functions -> Examples -
V7.2.1
new sort options -> Settings
Linux/Mac path bug fix
corrected symbol match -
V7.3.0
file extension aware filters
5 predefined filters -
V7.3.1
updated readme -
V7.6.2
reworked virtual document handling -
V7.6.3
additional simple C- and new Python-Filter added to documentation
npm run compile
to start the compiler in watch mode- open this folder in vsCode and press
F5