Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 1.0.5 instead.

q-lang-server

Offline Language Server Protocol implementation for q and k, written in Rust and powered by tree-sitter.

The server binary is named qls.

Install

pip install q-lang-server

Or with uv:

uv pip install q-lang-server

This installs the qls executable on your PATH.

Features

  • Diagnostics (linter)
  • Document formatting
  • Go to definition
  • Find references
  • Rename symbol (with prepare rename)
  • Hover
  • Document symbols and workspace symbols
  • Document highlight
  • Completion (with resolve)
  • Signature help
  • Semantic tokens

Source files are analyzed offline from the workspace. By default the server looks under **/src/**/*.q and **/src/**/*.k. Add ; to mark statement ends when needed for more accurate parsing.

Formatter

The formatter keeps lines within 100 characters and produces stable output — formatting an already formatted file changes nothing.

Long symbol lists are wrapped with a trailing , so each continuation line still joins into the same list:

longSyms: `symbol000`symbol001`symbol002`symbol003`symbol004`symbol005`symbol006`symbol007,
  `symbol008`symbol009`symbol010`symbol011`symbol012`symbol013`symbol014`symbol015`symbol016;

Symbol lists inside q-sql phases are left as-is, since a , there separates columns or conditions.

Ignore directives

Place either comment above a block to skip analysis for that block:

// q-lang-server-ignore-linter
// q-lang-server-ignore-formatter

Editor setup

Neovim

Use chili-neovim for q/k syntax, process management, and LSP. It starts qls for .q / .k buffers by default.

  1. Install qls (see above) and ensure it is on your $PATH.
  2. Install chili-neovim with lazy.nvim:

Minimal:

{ "jshinonome/chili-neovim" }

With options and completion:

{
  "jshinonome/chili-neovim",
  main = "chili",
  dependencies = {
    "hrsh7th/nvim-cmp",
    "hrsh7th/cmp-nvim-lsp",
    "hrsh7th/cmp-buffer",
    "hrsh7th/cmp-vsnip",
    "hrsh7th/vim-vsnip",
  },
  opts = {
    qls = {
      cmd = { "qls" },
      filetypes = { "q" }, -- .q and .k
      document_highlight = true,
      format_on_save = true,
    },
  },
}

See the chili-neovim README for process config, commands, and keybindings.

Other editors

Any LSP client that can launch qls over stdio can use this server. Point the client at the qls binary and associate it with q and k filetypes.

Related

License

Licensed under the Apache License, Version 2.0.

Release files for q-lang-server 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for q-lang-server 1.0.3
File
q_lang_server-1.0.3-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
q_lang_server-1.0.3-py3-none-win32.whl Python 3 none Windows x86-32 Details
q_lang_server-1.0.3-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
q_lang_server-1.0.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
q_lang_server-1.0.3-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
q_lang_server-1.0.3-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size:11.9 MB

Release files / q_lang_server-1.0.3-py3-none-win_amd64.whl

Download URL q_lang_server-1.0.3-py3-none-win_amd64.whl
Size 2.0 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
e1823737a2e7ab42c3c533bf17c058ff9586046aa21f70c5885b75214a09f91b
BLAKE2b-256 checksum
How to use checksums
f72a4ea6776c782cec82360a8c439cf86106d2a4120422b10e5537081aece816
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / q_lang_server-1.0.3-py3-none-win32.whl

Download URL q_lang_server-1.0.3-py3-none-win32.whl
Size 1.8 MB
Tags Python 3 Windows x86-32
SHA-256 checksum
How to use checksums
4d3df4769e81fd73a1734a3066e10fa6f8ff8611c67b980356af83d288663175
BLAKE2b-256 checksum
How to use checksums
0002f65c0743b15c7a7b587ace744c841eca825b72ebb5fca4672cb0530f490b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / q_lang_server-1.0.3-py3-none-musllinux_1_2_x86_64.whl

Download URL q_lang_server-1.0.3-py3-none-musllinux_1_2_x86_64.whl
Size 2.1 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
616b76561401d196346d5ffd2c2e9cd9df11c6e57b0689071115e1caf1d24f45
BLAKE2b-256 checksum
How to use checksums
7c74d9445d3b0dded80307a68f3c04b52ba9e560ff88f6373d75c8ade7f04c6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / q_lang_server-1.0.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL q_lang_server-1.0.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.0 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
b300fe9c5ac3874eedddaf7ab5c8c44b01539aca33aa238fd23bd8c4cd6b3626
BLAKE2b-256 checksum
How to use checksums
2757cf83f3f93f47d46f548f6234ff095bd21143e96b457ac53662e2eba5f06b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / q_lang_server-1.0.3-py3-none-macosx_11_0_arm64.whl

Download URL q_lang_server-1.0.3-py3-none-macosx_11_0_arm64.whl
Size 1.9 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e1f4b0bd4abafc85c9e46734b841efa7e6fb65c38209394a56f56555e220f23e
BLAKE2b-256 checksum
How to use checksums
817d112f1083a6cb69b04ffa5e57f12eba5e7ad051150113f4f6a1884aa30e7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / q_lang_server-1.0.3-py3-none-macosx_10_12_x86_64.whl

Download URL q_lang_server-1.0.3-py3-none-macosx_10_12_x86_64.whl
Size 2.0 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7e59e8b59e2986f02eaefbeb6a216bdaac18ef081c14046f590aa34f3b8b47dc
BLAKE2b-256 checksum
How to use checksums
ea1e888a7dc6cf082d5ec6163b6dd2553e00269b3b8298a315fc2658bdbbfcab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

1.0.5

6 release files

1.0.4

6 release files

This release

1.0.3 This release

6 release files

1.0.2

6 release files

1.0.1

6 release files

1.0.0

6 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page