2015-12-02 14:23:39 +00:00
|
|
|
#+TITLE: SQL layer
|
2015-06-10 16:44:30 +00:00
|
|
|
|
|
|
|
[[file:img/sql.png]]
|
|
|
|
|
2016-03-31 02:59:55 +00:00
|
|
|
* Table of Contents :TOC_4_gh:noexport:
|
2017-05-22 14:16:12 +00:00
|
|
|
- [[#description][Description]]
|
|
|
|
- [[#install][Install]]
|
2016-11-20 18:11:56 +00:00
|
|
|
- [[#sql-keywords-capitalization][SQL Keywords Capitalization]]
|
|
|
|
- [[#sql-interactive-mode][SQL Interactive Mode]]
|
|
|
|
- [[#blacklisting-keywords][Blacklisting keywords]]
|
2017-05-22 14:16:12 +00:00
|
|
|
- [[#key-bindings][Key bindings]]
|
|
|
|
- [[#highlighting][Highlighting]]
|
|
|
|
- [[#inferior-process-interactions-sqli][Inferior Process Interactions (SQLi)]]
|
|
|
|
- [[#send-sql-queries-to-sqli][Send SQL queries to SQLi:]]
|
|
|
|
- [[#sqli-buffer][SQLi buffer]]
|
2016-11-20 18:11:56 +00:00
|
|
|
- [[#code-formating][Code Formating]]
|
2015-06-10 16:44:30 +00:00
|
|
|
|
|
|
|
* Description
|
|
|
|
This layer adds key bindings and configuration for =sql-mode=, which manages
|
|
|
|
interactive SQL buffers and highlights a wide range of SQL dialects.
|
|
|
|
|
|
|
|
* Install
|
2016-01-06 05:21:55 +00:00
|
|
|
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
|
|
|
|
add =sql= to the existing =dotspacemacs-configuration-layers= list in this
|
|
|
|
file.
|
2015-06-10 16:44:30 +00:00
|
|
|
|
2016-11-20 18:11:56 +00:00
|
|
|
** SQL Keywords Capitalization
|
|
|
|
SQL, by convention, uses upper-case keywords, although lower-case works just as
|
|
|
|
well. As humans, the separation between upper-case and lower-case helps scan and
|
|
|
|
parse the code much more quickly.
|
|
|
|
|
|
|
|
To install [[https://github.com/Trevoke/sqlup-mode.el][sqlup-mode]] which enables auto capitalization in =sql mode= set the
|
|
|
|
variable =sql-capitalize-keywords= to =t=.
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
|
|
(setq-default dotspacemacs-configuration-layers '(
|
|
|
|
(sql :variables sql-capitalize-keywords t)))
|
|
|
|
#+END_SRC
|
|
|
|
|
|
|
|
*** SQL Interactive Mode
|
|
|
|
If you want capitalization only in =sql-mode= and not in =sql-interactive-mode=
|
|
|
|
you can set the variable =sql-capitalize-keywords-disable-interactive= to =t=.
|
|
|
|
|
|
|
|
*** Blacklisting keywords
|
|
|
|
[[https://github.com/Trevoke/sqlup-mode.el][sqlup-mode]] can be configured to ignore certain keywords. For example if you use
|
|
|
|
=name= as column name it would be annoying to have it upcased. You can prevent
|
|
|
|
this behaviour by setting the variable =sql-capitalize-keywords-blacklist= to
|
2017-05-24 10:13:13 +00:00
|
|
|
a list with keywords to ignore, e.g.
|
2016-11-20 18:11:56 +00:00
|
|
|
|
2017-05-24 10:13:13 +00:00
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
|
|
(setq-default dotspacemacs-configuration-layers '(
|
|
|
|
(sql :variables
|
|
|
|
sql-capitalize-keywords t
|
|
|
|
sql-capitalize-keywords-blacklist '("name" "varchar"))))
|
|
|
|
#+END_SRC
|
|
|
|
|
|
|
|
This layer is blacklisting =name= by default as it is a very common name for
|
2016-11-20 18:11:56 +00:00
|
|
|
column and NAME is non-reserved SQL keyword.
|
|
|
|
|
2015-06-10 16:44:30 +00:00
|
|
|
* Key bindings
|
|
|
|
|
|
|
|
** Highlighting
|
|
|
|
|
|
|
|
| Key Binding | Description |
|
|
|
|
|-------------+-----------------------------------|
|
|
|
|
| ~SPC m h k~ | select a SQL dialect to highlight |
|
|
|
|
|
|
|
|
** Inferior Process Interactions (SQLi)
|
|
|
|
|
|
|
|
| Key Binding | Description |
|
|
|
|
|-------------+-----------------------------|
|
|
|
|
| ~SPC m b b~ | show the SQLi buffer name |
|
|
|
|
| ~SPC m b s~ | set the SQLi buffer |
|
|
|
|
| ~SPC m l a~ | List all objects |
|
|
|
|
| ~SPC m l t~ | list all objects in a table |
|
|
|
|
|
2015-06-10 21:16:01 +00:00
|
|
|
*** Send SQL queries to SQLi:
|
2015-06-10 16:44:30 +00:00
|
|
|
|
2016-01-31 20:44:59 +00:00
|
|
|
| Key Binding | Description |
|
|
|
|
|-------------+---------------------------------------------------------------------------------------|
|
|
|
|
| ~SPC m s b~ | Send the whole buffer to the SQLi buffer |
|
|
|
|
| ~SPC m s B~ | Send the whole buffer to the SQLi buffer and switch to it in =insert state= |
|
|
|
|
| ~SPC m s i~ | Start the SQLi process |
|
|
|
|
| ~SPC m s f~ | Send the paragraph around point to the SQLi buffer |
|
2016-01-27 14:15:34 +00:00
|
|
|
| ~SPC m s F~ | Send the paragraph around point to the SQLi buffer and switch to it in =insert state= |
|
2016-01-31 20:44:59 +00:00
|
|
|
| ~SPC m s q~ | Prompt for a string to send to the SQLi buffer |
|
|
|
|
| ~SPC m s Q~ | Prompt for a string to send to the SQLi buffer and switch to it in =insert state= |
|
|
|
|
| ~SPC m s r~ | Send the selected region to the SQLi buffer |
|
|
|
|
| ~SPC m s R~ | Send the selected region to the SQLi buffer and switch to it in =insert state= |
|
2015-06-10 16:44:30 +00:00
|
|
|
|
|
|
|
** SQLi buffer
|
|
|
|
|
|
|
|
| Key Binding | Description |
|
|
|
|
|-------------+--------------------------------------------------------------|
|
|
|
|
| ~SPC m b r~ | rename buffer (follow up in the SQL buffer with ~SPC m b s~) |
|
|
|
|
| ~SPC m b S~ | save the current connection |
|
2016-11-20 18:11:56 +00:00
|
|
|
|
|
|
|
** Code Formating
|
|
|
|
|
|
|
|
| ~SPC m = c~ | capitalize SQL keywords in region (if capitalize is enabled) |
|