IQGeo development extension to support code navigation and additional linting in Visual Studio Code.
The extension provides the following features:
An alternative definition search dialog that shows a preview of the highlighted result in an editor.
The search supports JavaScript and Python and accepts these query formats:
<method name>
<class name>
<class name>.<method name>
<file name or path>
Enhanced navigation to the definitions using the standard commands in VS Code. (e.g. Go to Definition, Peek Definition, Go to Symbol, ...).
Linting for API usage and subclassing.
Set of shortcuts for
Definition search
Code navigation
Text search
Workspace layouts
Command to create JSDoc comment for a function or class.
Press Ctrl+Shift+D when the cursor is on the definition line to create a JSDoc comment populated with the parameters. Any defaults will be included.
Command to update an IQGeo project based on options in .iqgeorc.jsonc configuration file.
"IQGeo Update Project from .iqgeorc.jsonc" is available from the command palette (Ctrl+Cmd+P or Ctrl+Shift+P) or from the right click menu when editing .iqgeorc.jsonc.
See utils-project-template and utils-project-update for details.
Command to pull and merge latest changes from utils-project-template with existing project files.
"IQGeo Pull and merge files from project-template" is available from the command palette (Ctrl+Cmd+P or Ctrl+Shift+P) or from the right click menu when editing .iqgeorc.jsonc.
See utils-project-template and utils-project-update for details.
File watch to restart Python or browser debug session when a Python or JavaScript file change respectively.
This functionality is enabled when iqgeo-utils-vscode.enableAutoRestart is set to true.
The extension uses one terminal to restart the Python environment and another to run a Javascript file watch. A browser debug session (if active) will be restarted when a JavaScript file is saved.
The watch can be started using the command 'IQGeo Start Watch'.
The delay between saving a JavaScript file and restarting a debug session (to allow the watch build to complete) can be configured using the setting iqgeo-utils-vscode.restartDelay (defaults to 1500ms).
The extension scans for definitions in the paths specified by the setting iqgeo-utils-vscode.searchPaths (see below).
The search path defaults to the workspace folder or /opt/iqgeo/platform/WebApps/myworldapp when inside a dev container.
Files are automatically rescanned when saved.
Usage
Definition Search
Search Definitions = CMD + T (Ctrl + T).
The search supports <method name> or <class name> or <class>.<method>
Use <class name>. to list all functions for a class.
Use @<partial path> to list classes matching the path.
The search is case-insensitive. Matching inherited methods are shown in results.
Use the up and down arrows in the search result list to update the preview.
Scan Files (IQGeo Refresh Symbols) = Ctrl + T (Alt + T)
(e.g. after changing branch)
Text Search
Search in the root folder = CMD + G (Ctrl + G)
Search in the workspace (repository) folder = CMD + R (Ctrl + R)
Search core folder in Platform = Shift + CMD + R (Shift + Ctrl + R)
Open Editor Search with current selection or word = Ctrl + G (Alt + G)
Navigation
Go to Definition = CMD + . (Alt + .)
Go Back = Ctrl + CMD + Left (Alt + Left)
Definition search with current selection or word = CMD + ; (Ctrl + ;)
Peek Definition = Ctrl + .
Go to References = CMD + , (Alt + ,)
Definition Up = CMD + PageUp (Ctrl + PageUp)
Definition Down = CMD + PageDown (Ctrl + PageDown)
Reveal current file in Explorer = CMD + E (Ctrl + E)
Toggle Editor/Terminal Focus = CMD + ' (Ctrl + ')
Toggle terminal visibility = Ctrl + ' (Alt + ')
JSDoc
Insert JSDoc for function or class definition = Ctrl + Shift + D
Layouts
Shortcuts to control the layout of the workspace
Ctrl + 1 = Sidebar + Editor + Terminal
Ctrl + 2 = Editor + Terminal
Ctrl + 3 = Sidebar + Editor
Ctrl + 4 = Explorer + Editor
Ctrl + 5 = Source Control + Editor
Ctrl + 6 = Editor + Terminal Right
Ctrl + 7 = Editor
Ctrl + 8 = Maximise Editor Group
Extension Settings
Search paths for JS and Python definitions. Use ; to separate paths. (Default value is the VS Code workspace folder path)