All Projects → jshinonome → vscode-q

jshinonome / vscode-q

Licence: MIT license
vscode kdb+/q extension

Programming Languages

typescript
32286 projects
HTML
75241 projects
q
29 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to vscode-q

docs-v1
Source of code.kx.com/q
Stars: ✭ 33 (-2.94%)
Mutual labels:  kdb, q
kafka
kdb+ to Apache Kafka adapter, for pub/sub
Stars: ✭ 38 (+11.76%)
Mutual labels:  kdb, q
q4q
Source Code for "Q for Quants"
Stars: ✭ 22 (-35.29%)
Mutual labels:  kdb, q
kdb nim
Nim Kdb type-safe bindings
Stars: ✭ 13 (-61.76%)
Mutual labels:  kdb, q
kdb-tick
Latest source files for kdb+tick
Stars: ✭ 73 (+114.71%)
Mutual labels:  kdb, q
jupyterq
Jupyter kernel for kdb+
Stars: ✭ 87 (+155.88%)
Mutual labels:  kdb, q
ml
Machine-learning toolkit
Stars: ✭ 48 (+41.18%)
Mutual labels:  kdb, q
ml.q
Machine Learning for kdb+/q
Stars: ✭ 25 (-26.47%)
Mutual labels:  kdb, q
rkdb
R client for kdb+
Stars: ✭ 37 (+8.82%)
Mutual labels:  kdb, q
q-mode
Emacs mode for editing q scripts and communicating with inferior q/qcon buffers
Stars: ✭ 21 (-38.24%)
Mutual labels:  kdb, q
automl
Automated Machine Learning Framework for kdb+
Stars: ✭ 22 (-35.29%)
Mutual labels:  kdb, q
docs
Source for documentation site
Stars: ✭ 73 (+114.71%)
Mutual labels:  kdb, q
javakdb
Using Java with kdb+
Stars: ✭ 41 (+20.59%)
Mutual labels:  kdb, q
ws.q
Simple library for websockets in kdb+/q
Stars: ✭ 27 (-20.59%)
Mutual labels:  kdb
Q
q - Run SQL directly on CSV or TSV files
Stars: ✭ 8,809 (+25808.82%)
Mutual labels:  q

vscode-q

Join the chat at https://gitter.im/vscode-q/community

This extension provides kdb+\q language support:

  • q syntaxes
  • server list group by tags
  • server explorer
  • query grid powered by ag-grid-community & chart.js
  • query visualization powered by perspective
  • language server powered by tree-sitter
    • rename symbol (F2)
    • go to definition (F12)
    • go to reference (Shift+F12)
    • workspace symbol (Ctrl+T)
    • document highlight
    • document symbol (Ctrl+Shift+O)
    • completion
      • identifiers defined in code
      • identifiers defined on kdb+ process
      • column names define on kdb+ process
    • completion resolve
    • signature help
    • semantic highlight
    • call hierarchy

See the change log.

Demo

Introduction to vscode-q

Introduction to vscode-q

Configuration

  • To configure globally, type ctrl+, to open Settings and change the following values.
  • To configure for workspace, type ctrl+shift+p, call Preferences: Open Workspace Settings and change the following values.
configuration type default value description
q-server.sourceFiles.globsPattern array ["**/src/**/*.q"] source folder to be included
q-server.sourceFiles.ignorePattern array ["**/build","**/node_modules"] folder to be excluded
q-client.queryMode string Console query mode, Console, Grid or Visualization
q-client.queryGrid.decimals number 3 decimals in q grid
q-client.term.qBinary string q q executable file or full path
q-client.term.envPath string '' environment file relative or absolute path
q-client.expl.prevQueryLimit string 5 q explorer preview query limit
q-client.expl.autoRefresh boolean false q explorer auto refresh
q-client.expl.excludedNamespaces array ["q","Q","j","o","h"] namespaced to be excluded from q explorer
q-client.output.autoClear boolean false Auto Clear Output
q-client.output.includeQuery boolean false Include Query in Output
q-client.output.consoleSize string '36 180' Console Size for Output

q Language Server(local server, no connection to the internet)

The server will analyze q source files in all 'src' folder. Insert ';' to indicated end of statement if necessary.

Server List

List servers, click to switch server. Generate tree structure from tags.

Special tag color:

  • green: dev, development
  • blue: uat
  • red: prd, prod.

server-list

Server Explorer

List variables defined on the active server.

Query Mode

Type ctrl+shift+p and call kdb+/q ext: Switch Query Mode to switch Query Console.

Query View

The query view, powered by perspective, can pivot and virtualize table data. In Query View mode, only table will be showed in a webview, but other result will still be in output. It will limit to 1000 rows when query a table, click the flame in q Ext panel , or call kdb+/q ext: Toggle Unlimited Query, to remove 1000 rows limit. Be noted that, Query View only support millisecond precision. Use Query Grid, if you need nanosecond precision.

Query Grid

The query grid, powered by ag-grid-community and chart.js, can filter and sort table data. In Query Grid mode, only table will be showed in a webview, but other result will still be in output. It will limit to 1000 rows when query a table, click the flame in q Ext panel , or call kdb+/q ext: Toggle Unlimited Query, to remove 1000 rows limit.

Query Console(default)

Output just like q console to an output channel. The console size is set to the same as q http size. Use system "C rows columns" to change console size.

History View

Record query histories.

Commands

Connect q Sever

Type ctrl+shift+p and call kdb+/q ext: Connect to q Server to connect to a q server.

Formatter

Append space to },],) by formatting the file. Turn on Editor: Format On Save to automatically append space.

Shortcuts

  • ctrl+q: query current line
  • ctrl+r: query selection
  • ctrl+e: query block
  • ctrl+shift+q: send current line to terminal
  • ctrl+shift+r: send selection to terminal
  • ctrl+shift+e: send block to terminal

To change shortcuts

  1. type ctrl+shift+p
  2. input "shortcut"
  3. open the Keyboard Shortcuts
  4. search for "kdb+".

Version Compatibility

To use this extension in an earlier version of vscode.

  1. git clone this repo
  2. change 'vscode' of 'engine' in the package.json and '@types/vscode' of devDependencies to target version 1.**
...
	"engines": {
		"vscode": "^1.**.*"
	},
...
	"devDependencies": {
...
		"@types/vscode": "^1.**.*",
...
	},
  1. run the following commands from this repo folder to get a earlier version compatible package
npm i
sudo npm i -g vsce
vsce package

Tips

Enable Auto Scrolling for Output Channel

  1. Type ctrl+comma(,), open Settings, disable Output>Smart Scroll.
  2. Turn on Auto Scrolling by clicking a small locker icon on the right top of output channel.

Disable Word Wrap in q Console of Output

Type ctrl+shift+p, call Open Setting(Json), and add following configuration.

    "[Log]": {
        "editor.wordWrap": "off"
    }

No Color in q Output

There may be a conflict with other extensions. Disable or uninstall them and try again.

Enable Highlight for Attention And TODO of comments

comment-highlight

Type ctrl+shift+p, call Open Setting(Json), and add following configuration.

    "editor.tokenColorCustomizations": {
        "textMateRules": [
            {
                "scope":"comment.line.attention",
                "settings": {
                    "fontStyle": "italic",
                    "foreground": "#B71C1C"
                }
            },
            {
                "scope":"comment.line.todo",
                "settings": {
                    "fontStyle": "italic",
                    "foreground": "#2E7D32"
                }
            }
        ]
    }

Special Comment

Querying comment line /<=> quant,prod,local-1800 will connect to quant,prod,local-1800. Type ctrl+shift+p, call kdb+/q ext Insert Active Connection Label to insert active connection label.

Customized Authentication

refer to vscode-q-auth

Packages

Special thanks to the following packages.

Reference

Recommended Packages

Contributing

If you'd like to contribute to this extension, please read the contributing guidelines.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].