Module: RuVim::Lang::Sql
- Defined in:
- lib/ruvim/lang/sql.rb
Constant Summary collapse
- KEYWORDS =
%w[ SELECT FROM WHERE AND OR NOT IN IS NULL LIKE BETWEEN EXISTS INSERT INTO VALUES UPDATE SET DELETE CREATE TABLE ALTER DROP INDEX VIEW TRIGGER FUNCTION PROCEDURE JOIN INNER LEFT RIGHT OUTER FULL CROSS ON USING GROUP BY ORDER ASC DESC HAVING LIMIT OFFSET DISTINCT UNION ALL INTERSECT EXCEPT AS CASE WHEN THEN ELSE END BEGIN COMMIT ROLLBACK TRANSACTION SAVEPOINT PRIMARY KEY FOREIGN REFERENCES UNIQUE CHECK DEFAULT CONSTRAINT IF ELSE ELSEIF WHILE LOOP FOR RETURN DECLARE INT INTEGER BIGINT SMALLINT TINYINT FLOAT DOUBLE DECIMAL NUMERIC REAL CHAR VARCHAR TEXT BLOB CLOB BOOLEAN DATE TIME TIMESTAMP SERIAL AUTO_INCREMENT IDENTITY CASCADE RESTRICT SET GRANT REVOKE WITH RECURSIVE COUNT SUM AVG MIN MAX COALESCE NULLIF CAST CONVERT EXPLAIN ANALYZE VACUUM REINDEX CLUSTER TRUNCATE TRUE FALSE ].freeze
- KEYWORD_RE =
/\b(?:#{KEYWORDS.join("|")})\b/i- STRING_SINGLE_RE =
/'(?:''|[^'])*'/- STRING_DOUBLE_RE =
/"(?:""|[^"])*"/- NUMBER_RE =
/\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b/- LINE_COMMENT_RE =
/--.*/- BLOCK_COMMENT_RE =
%r{/\*.*?\*/}- PARAMETER_RE =
/[:@$]\w+/
Class Method Summary collapse
Class Method Details
.color_columns(text) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/ruvim/lang/sql.rb', line 36 def color_columns(text) cols = {} Highlighter.apply_regex(cols, text, STRING_SINGLE_RE, Highlighter::STRING_COLOR) Highlighter.apply_regex(cols, text, STRING_DOUBLE_RE, Highlighter::STRING_COLOR) Highlighter.apply_regex(cols, text, KEYWORD_RE, Highlighter::KEYWORD_COLOR) Highlighter.apply_regex(cols, text, NUMBER_RE, Highlighter::NUMBER_COLOR) Highlighter.apply_regex(cols, text, PARAMETER_RE, Highlighter::VARIABLE_COLOR) Highlighter.apply_regex(cols, text, BLOCK_COMMENT_RE, Highlighter::COMMENT_COLOR, override: true) Highlighter.apply_regex(cols, text, LINE_COMMENT_RE, Highlighter::COMMENT_COLOR, override: true) cols end |