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
.
Seeutils-project-template
andutils-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
.
Seeutils-project-template
andutils-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 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). -
(Experiemental) Hover and Code Lens actions for search and navigation. The actions can be enabled with the settings iqgeo-utils-vscode.enableHover and iqgeo-utils-vscode.enableCodeLens.
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.
-
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)
-
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)
-
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 + ')
- Insert JSDoc for function or class definition = Ctrl + Shift + D
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
- Search paths for JS and Python definitions. Use ; to separate paths. (Default value is the VS Code workspace folder path)
"iqgeo-utils-vscode.searchPaths": "/opt/iqgeo/platform/WebApps"
- Maximum number of search results displayed by this extension. (Default value is 500)
"iqgeo-utils-vscode.maxSearchResults": 500
- Defines whether a preview of the active result in the search list is shown. (Default value is true)
"iqgeo-utils-vscode.enableSearchPreview": true
- Defines whether API and subclassing linting is enabled. (Default value is true)
"iqgeo-utils-vscode.enableLinting": true
- Defines the linting severity for missing API comments. Can be one of "Error", "Warning", "Information" or "Hint". (Default value is "Error")
"iqgeo-utils-vscode.apiLintingSeverity": "Error"
- Defines whether workspace layout shortcuts are enabled. (Default value is true)
"iqgeo-utils-vscode.enableLayouts": true
- Enable auto restart of Python and browser debug session. (Default value is false)
"iqgeo-utils-vscode.enableAutoRestart": false
- Command to watch for changes in the workspace. (Defaults to myw_product watch)
"iqgeo-utils-vscode.watchCommand": "myw_product watch applications_dev --debug"
- Command to reload Python when changes are detected. (Defaults to 'touch /opt/iqgeo/platform/WebApps/myworldapp.wsgi')
"iqgeo-utils-vscode.pythonRestartCommand": "touch /opt/iqgeo/platform/WebApps/myworldapp.wsgi"
- Delay time in ms between a file change and restarting a browser debug session. (Defaults to 1500)
"iqgeo-utils-vscode.restartDelay": 1500
- Improvements to Update and Pull commands from utils-project-update.
- Added experiemental features for searching and code navigation from the editor tooltip and with code lens actions.
- Improvements to activating and deactivating the JS and Python file watch.
- Added support for multiple folders in the workspace.
- Improvements to Update and Pull commands from utils-project-update.
- Improvements to Update and Pull commands from utils-project-update.
- Improvements to Update and Pull commands from utils-project-update.
- Improvements to Update and Pull commands from utils-project-update.
- Improvements to Update and Pull commands from utils-project-update.
- Improvements to Update and Pull commands from utils-project-update.
- Improvements to Update and Pull commands from utils-project-update.
- Added setting to allow configuration of Python restart command.
- Added Type hierarchy support for Javascript.
- Added Search Core folder command.
- Improvements to Update and Pull commands from utils-project-update.
- Improvements to Update and Pull commands from utils-project-update.
- Added new Pull command from utils-project-update.
- Improved logging to the IQGeo output channel.
- Move project update to separate package.
- Convert CJS modules to ESM.
- Fix Python search where totality is used in class definition.
- Updated Python search for type hints.
- Added config for API linting severity.
- Fixes and performance improvements to search.
- Added automatic watch to restart Python and the active browser debug session.
- New command to update an IQGeo project based on https://github.com/IQGeo/utils-project-template from the options specified in the .iqgeorc.jsonc configuration file.
- Update shortcut for JSDoc command.
- Added command to insert JSDoc for a function or class definition.
- Search now includes files without need for @ at start of query.
- Improved file search.
- Add workspace layout shortcuts.
- Update readme images and fix license date.
- Initial release of iqgeo-utils-vscode to support code navigation and linting.