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.