SQL language server written in Go.
An implementation of the Language Server Protocol for SQL.
This project is currently under development and there is no stable release. Therefore, destructive interface changes and configuration changes are expected.
sqls aims to provide advanced intelligence for you to edit sql in your own editor.
If the tables are connected with a foreign key sqls can complete JOIN statements
go install github.com/sqls-server/sqls@latestThe connection to the RDBMS is essential to take advantage of the functionality provided by sqls.
You need to set the connection to the RDBMS.
There are the following methods for RDBMS connection settings, and they are prioritized in order from the top. Whichever method you choose, the settings you make will remain the same.
-config flagworkspace/configuration set to LSP client$XDG_CONFIG_HOME/sqls/config.yml ("$HOME/.config" is used instead of $XDG_CONFIG_HOME if it's not set)……In coc-settings.json opened by :CocConfig
{
"languageserver": {
"sql": {
"command": "sqls",
"args": ["-config", "$HOME/.config/sqls/config.yml"],
"filetypes": ["sql"],
"shell": true
}
}
}require'lspconfig'.sqls.setup{
on_attach = function(client, bufnr)
require('sqls').on_attach(client, bufnr) -- require sqls.nvim
end
settings = {
sqls = {
connections = {
{
driver = 'mysql',
dataSourceName = 'root:root@tcp(127.0.0.1:13306)/world',
},
{
driver = 'postgresql',
dataSourceName = 'host=127.0.0.1 port=15432 user=postgres password=mysecretpassword1234 dbname=dvdrental sslmode=disable',
},
},
},
},
}Setting example for Sublime Text 4
Install the LSP Client by Opening the command palette and run Package Control: Install Package, then select LSP.
Open Preferences > Package Settings > LSP > Settings and add the "sqls" client configuration to the "clients":
{
"show_diagnostics_count_in_view_status": true,
"clients": {
"sqls": {
"enabled": true,
"command": ["/path/to/sqls binary"],
"selector": "source.sql"
}
}
}I'm sorry. Please wait a little longer for other editor settings.
The first setting in connections is the default connection.
| Key | Description |
|---|---|
| connections | Database connections |
dataSourceName takes precedence over the value set in proto, user, passwd, host, port, dbName, params.
| Key | Description |
|---|---|
| alias | Connection alias name. Optional. |
| driver | mysql, postgresql, sqlite3, mssql, h2. Required. |
| dataSourceName | Data source name. |
| proto | tcp, udp, unix. |
| user | User name |
| passwd | Password |
| host | Host |
| port | Port |
| path | unix socket path |
| dbName | Database name |
| params | Option params. Optional. |
| sshConfig | ssh config. Optional. |
| Key | Description |
|---|---|
| host | ssh host. Required. |
| port | ssh port. Required. |
| user | ssh user. Optional. |
| privateKey | private key path. Required. |
| passPhrase | passPhrase. Optional. |
See also.
This project exists thanks to all the people who contribute.
I created sqls inspired by the following OSS.
No open issues yet, or sync has not completed.