Skip to content

SQL (sqls)#

Server#

For more information about the LSP server, check sqls.

Installation#

go install github.com/sqls-server/sqls@latest

Debugger: Not available#


root_file: docs/manual-language-docs/lsp-sqls.md#

Sample configuration:#

(add-hook 'sql-mode-hook 'lsp)
(setq lsp-sqls-workspace-config-path nil)
(setq lsp-sqls-connections
    '(((driver . "mysql") (dataSourceName . "yyoncho:local@tcp(localhost:3306)/foo"))
      ((driver . "mssql") (dataSourceName . "Server=localhost;Database=sammy;User Id=yyoncho;Password=hunter2;"))
      ((driver . "postgresql") (dataSourceName . "host=127.0.0.1 port=5432 user=yyoncho password=local dbname=sammy sslmode=disable"))))

Storing Configuration in <project>/.sqls/config.json#

Alternatively, you can store your configuration in the project root at <project>/.sqls/config.json:

{
  "sqls": {
    "connections": [
      {
        "driver": "mysql",
        "dataSourceName": "yyoncho:local@tcp(localhost:3306)/foo"
      }, 
      …etc…
    ]
  }
}

In this case, you need to set lsp-sqls-workspace-config-path to "root":

(setq lsp-sqls-workspace-config-path "root")

Storing Configuration in the Current Directory#

If you want to configure it for the current directory, you can create a .sqls/config.json file:

.sqls/config.json
target.sql

For this setup, ensure that lsp-sqls-workspace-config-path is set to "workspace":

(setq lsp-sqls-workspace-config-path "workspace")

Switching Connections and Databases#

Now, lsp should start in sql-mode buffers. You can choose a server connection using M-x lsp-execute-code-action and then selecting "Switch Connections", or directly with M-x lsp-sql-switch-connection.

To change the database, use M-x lsp-execute-code-action and select "Switch Database" (or M-x lsp-sql-switch-database).

Available configurations#

lsp-sqls-connections#

Type: (repeat (alist :key-type (choice (const :tag Driver driver) (const :tag Connection String dataSourceName)) :value-type string))

Default: nil

The connections to the SQL server(s).


lsp-sqls-server#

Type: file

Default: sqls

Path to the sqls binary.


lsp-sqls-timeout#

Type: number

Default: 0.5

Timeout to use for sqls requests.


lsp-sqls-workspace-config-path#

Type: (choice (const workspace) (const root))

Default: workspace

If non-nil then setup workspace configuration with json file path.



Last update: December 21, 2024