coc-sqlfluff

0.11.4 • Public • Published

coc-sqlfluff

SQLFluff (A SQL linter and auto-formatter for Humans) extension for coc.nvim

coc-sqlfluff-demo

Features

  • Lint
  • Format
  • Code Action
  • Built-in installer

Install

CocInstall:

:CocInstall coc-sqlfluff

vim-plug:

Plug 'yaegassy/coc-sqlfluff', {'do': 'yarn install --frozen-lockfile'}

Detect: sqlfluff

  1. sqlfluff.commandPath setting
  2. PATH environment (e.g. system global PATH or venv, etc ...)
  3. builtin: extension-only "venv" (Installation commands are also provided)

Bult-in install

coc-sqlfluff allows you to create an extension-only "venv" and install "sqlfluff".

The first time you use coc-sqlfluff, if sqlfluff is not detected, you will be prompted to do a built-in installation.

You can also run the installation command manually.

:CocCommand sqlfluff.install

SQLFluff configuration file (setup.cfg, tox.ini, pep8.ini, .sqlfluff, pyproject.toml)

SQLFluff is able to read project-specific default values for its command line options, or from a configuration file.

SQLFluff will look for the following files in order. Later files will (if found) will be used to overwrite any vales read from earlier files.

  1. setup.cfg
  2. tox.ini
  3. pep8.ini
  4. .sqlfluff
  5. pyproject.toml

REF:

Configuration options

  • sqlfluff.enable: Enable coc-sqlfluff extension, default: true
  • sqlfluff.commandPath: The path to the sqlfluff command (Absolute path), default: ""
  • sqlfluff.builtin.pythonPath: Python 3.x path (Absolute path) to be used for built-in install, default: ""
  • sqlfluff.dialect: The dialect of SQL to lint, valid option: ["ansi", "bigquery", "clickhouse", "databricks", "db2", "duckdb", "exasol", "hive", "mysql", "oracle", "postgres", "redshift", "snowflake", "soql", "sparksql", "sqlite", "teradata", "tsql"], default: "ansi"
  • sqlfluff.linter.ignoreParsing: Whether the sql linter should ignore parsing errors, default: true
  • sqlfluff.lintOnOpen: Lint file on opening, default: true
  • sqlfluff.lintOnChange: Lint file on change, default: true
  • sqlfluff.lintOnSave: Lint file on save, default: true
  • sqlfluff.formatEnable: Whether the document formatter is enabled or not, default: true
  • sqlfluff.formatIgnoreStderrAlert: Ignore stderr message output when formatting is executed, e.g. Unfixable violations detected, default: true

Commands

  • sqlfluff.install: Install sqlfluff
    • It will be installed in this path:
      • Mac/Linux: ~/.config/coc/extensions/coc-sqlfluff-data/sqlfluff/venv/bin/sqlfluff
      • Windows: ~/AppData/Local/coc/extensions/coc-sqlfluff-data/sqlfluff/venv/Scripts/sqlfluff.exe
  • sqlfluff.fix: Run sqlfluff fix file
  • sqlfluff.format: Run sqlfluff format file (Available in sqlfluff v2.0.0 and later)
  • sqlfluff.showOutput: Show sqlfluff output channel

Code Actions

Example key mapping (Code Action related):

nmap <silent> ga <Plug>(coc-codeaction-line)

Usage:

In the line with diagnostic message, enter the mapped key (e.g. ga) and you will see a list of code actions that can be performed.

Actions:

  • Ignoring Errors for current line (-- noqa)
  • Ignoring Errors for current line (-- noqa: disable=all)
  • Ignoring Errors for current line (-- noqa: enable=all)
  • Show web documentation for {RULE_ID}

Thanks

License

MIT


This extension is built with create-coc-extension

Package Sidebar

Install

npm i coc-sqlfluff

Weekly Downloads

64

Version

0.11.4

License

MIT

Unpacked Size

197 kB

Total Files

4

Last publish

Collaborators

  • yaegassy