"Fossies" - the Fresh Open Source Software Archive

Member "vim-8.2.1354/runtime/syntax/mysql.vim" (2 Aug 2020, 17609 Bytes) of package /linux/misc/vim-8.2.1354.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) vimscript source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 " Vim syntax file
    2 " Language:     mysql
    3 " Maintainer:   Kenneth J. Pronovici <pronovic@ieee.org>
    4 " Last Change:  $LastChangedDate: 2016-04-11 10:31:04 -0500 (Mon, 11 Apr 2016) $
    5 " Filenames:    *.mysql
    6 " URL:          ftp://cedar-solutions.com/software/mysql.vim
    7 " Note:         The definitions below are taken from the mysql user manual as of April 2002, for version 3.23
    8 
    9 " quit when a syntax file was already loaded
   10 if exists("b:current_syntax")
   11   finish
   12 endif
   13 
   14 " Always ignore case
   15 syn case ignore
   16 
   17 " General keywords which don't fall into other categories
   18 syn keyword mysqlKeyword         action add after aggregate all alter as asc auto_increment avg_row_length
   19 syn keyword mysqlKeyword         both by
   20 syn keyword mysqlKeyword         cascade change character check checksum column columns comment constraint create cross
   21 syn keyword mysqlKeyword         current_date current_time current_timestamp
   22 syn keyword mysqlKeyword         data database databases day day_hour day_minute day_second
   23 syn keyword mysqlKeyword         default delayed delay_key_write delete desc describe distinct distinctrow drop
   24 syn keyword mysqlKeyword         enclosed escape escaped explain
   25 syn keyword mysqlKeyword         fields file first flush for foreign from full function
   26 syn keyword mysqlKeyword         global grant grants group
   27 syn keyword mysqlKeyword         having heap high_priority hosts hour hour_minute hour_second
   28 syn keyword mysqlKeyword         identified ignore index infile inner insert insert_id into isam
   29 syn keyword mysqlKeyword         join
   30 syn keyword mysqlKeyword         key keys kill last_insert_id leading left limit lines load local lock logs long
   31 syn keyword mysqlKeyword         low_priority
   32 syn keyword mysqlKeyword         match max_rows middleint min_rows minute minute_second modify month myisam
   33 syn keyword mysqlKeyword         natural no
   34 syn keyword mysqlKeyword         on optimize option optionally order outer outfile
   35 syn keyword mysqlKeyword         pack_keys partial password primary privileges procedure process processlist
   36 syn keyword mysqlKeyword         read references reload rename replace restrict returns revoke right row rows
   37 syn keyword mysqlKeyword         second select show shutdown soname sql_big_result sql_big_selects sql_big_tables sql_log_off
   38 syn keyword mysqlKeyword         sql_log_update sql_low_priority_updates sql_select_limit sql_small_result sql_warnings starting
   39 syn keyword mysqlKeyword         status straight_join string
   40 syn keyword mysqlKeyword         table tables temporary terminated to trailing type
   41 syn keyword mysqlKeyword         unique unlock unsigned update usage use using
   42 syn keyword mysqlKeyword         values varbinary variables varying
   43 syn keyword mysqlKeyword         where with write
   44 syn keyword mysqlKeyword         year_month
   45 syn keyword mysqlKeyword         zerofill
   46 
   47 " Special values
   48 syn keyword mysqlSpecial         false null true
   49 
   50 " Strings (single- and double-quote)
   51 syn region mysqlString           start=+"+  skip=+\\\\\|\\"+  end=+"+
   52 syn region mysqlString           start=+'+  skip=+\\\\\|\\'+  end=+'+
   53 
   54 " Numbers and hexidecimal values
   55 syn match mysqlNumber            "-\=\<[0-9]*\>"
   56 syn match mysqlNumber            "-\=\<[0-9]*\.[0-9]*\>"
   57 syn match mysqlNumber            "-\=\<[0-9][0-9]*e[+-]\=[0-9]*\>"
   58 syn match mysqlNumber            "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>"
   59 syn match mysqlNumber            "\<0x[abcdefABCDEF0-9]*\>"
   60 
   61 " User variables
   62 syn match mysqlVariable          "@\a*[A-Za-z0-9]*\([._]*[A-Za-z0-9]\)*"
   63 
   64 " Escaped column names
   65 syn match mysqlEscaped           "`[^`]*`"
   66 
   67 " Comments (c-style, mysql-style and modified sql-style)
   68 syn region mysqlComment          start="/\*"  end="\*/"
   69 syn match mysqlComment           "#.*"
   70 syn match mysqlComment           "--\_s.*"
   71 syn sync ccomment mysqlComment
   72 
   73 " Column types
   74 "
   75 " This gets a bit ugly.  There are two different problems we have to
   76 " deal with.
   77 "
   78 " The first problem is that some keywords like 'float' can be used
   79 " both with and without specifiers, i.e. 'float', 'float(1)' and
   80 " 'float(@var)' are all valid.  We have to account for this and we
   81 " also have to make sure that garbage like floatn or float_(1) is not
   82 " highlighted.
   83 "
   84 " The second problem is that some of these keywords are included in
   85 " function names.  For instance, year() is part of the name of the
   86 " dayofyear() function, and the dec keyword (no parenthesis) is part of
   87 " the name of the decode() function.
   88 
   89 syn keyword mysqlType            tinyint smallint mediumint int integer bigint
   90 syn keyword mysqlType            date datetime time bit bool
   91 syn keyword mysqlType            tinytext mediumtext longtext text
   92 syn keyword mysqlType            tinyblob mediumblob longblob blob
   93 syn region mysqlType             start="float\W" end="."me=s-1
   94 syn region mysqlType             start="float$" end="."me=s-1
   95 syn region mysqlType             start="float(" end=")" contains=mysqlNumber,mysqlVariable
   96 syn region mysqlType             start="double\W" end="."me=s-1
   97 syn region mysqlType             start="double$" end="."me=s-1
   98 syn region mysqlType             start="double(" end=")" contains=mysqlNumber,mysqlVariable
   99 syn region mysqlType             start="double precision\W" end="."me=s-1
  100 syn region mysqlType             start="double precision$" end="."me=s-1
  101 syn region mysqlType             start="double precision(" end=")" contains=mysqlNumber,mysqlVariable
  102 syn region mysqlType             start="real\W" end="."me=s-1
  103 syn region mysqlType             start="real$" end="."me=s-1
  104 syn region mysqlType             start="real(" end=")" contains=mysqlNumber,mysqlVariable
  105 syn region mysqlType             start="numeric(" end=")" contains=mysqlNumber,mysqlVariable
  106 syn region mysqlType             start="dec\W" end="."me=s-1
  107 syn region mysqlType             start="dec$" end="."me=s-1
  108 syn region mysqlType             start="dec(" end=")" contains=mysqlNumber,mysqlVariable
  109 syn region mysqlType             start="decimal\W" end="."me=s-1
  110 syn region mysqlType             start="decimal$" end="."me=s-1
  111 syn region mysqlType             start="decimal(" end=")" contains=mysqlNumber,mysqlVariable
  112 syn region mysqlType             start="\Wtimestamp\W" end="."me=s-1
  113 syn region mysqlType             start="\Wtimestamp$" end="."me=s-1
  114 syn region mysqlType             start="\Wtimestamp(" end=")" contains=mysqlNumber,mysqlVariable
  115 syn region mysqlType             start="^timestamp\W" end="."me=s-1
  116 syn region mysqlType             start="^timestamp$" end="."me=s-1
  117 syn region mysqlType             start="^timestamp(" end=")" contains=mysqlNumber,mysqlVariable
  118 syn region mysqlType             start="\Wyear(" end=")" contains=mysqlNumber,mysqlVariable
  119 syn region mysqlType             start="^year(" end=")" contains=mysqlNumber,mysqlVariable
  120 syn region mysqlType             start="char(" end=")" contains=mysqlNumber,mysqlVariable
  121 syn region mysqlType             start="varchar(" end=")" contains=mysqlNumber,mysqlVariable
  122 syn region mysqlType             start="enum(" end=")" contains=mysqlString,mysqlVariable
  123 syn region mysqlType             start="\Wset(" end=")" contains=mysqlString,mysqlVariable
  124 syn region mysqlType             start="^set(" end=")" contains=mysqlString,mysqlVariable
  125 
  126 " Logical, string and  numeric operators
  127 syn keyword mysqlOperator        between not and or is in like regexp rlike binary exists
  128 syn region mysqlOperator         start="isnull(" end=")" contains=ALL
  129 syn region mysqlOperator         start="coalesce(" end=")" contains=ALL
  130 syn region mysqlOperator         start="interval(" end=")" contains=ALL
  131 
  132 " Control flow functions
  133 syn keyword mysqlFlow            case when then else end
  134 syn region mysqlFlow             start="ifnull("   end=")"  contains=ALL
  135 syn region mysqlFlow             start="nullif("   end=")"  contains=ALL
  136 syn region mysqlFlow             start="if("       end=")"  contains=ALL
  137 
  138 " General Functions
  139 "
  140 " I'm leery of just defining keywords for functions, since according to the MySQL manual:
  141 "
  142 "     Function names do not clash with table or column names. For example, ABS is a
  143 "     valid column name. The only restriction is that for a function call, no spaces
  144 "     are allowed between the function name and the `(' that follows it.
  145 "
  146 " This means that if I want to highlight function names properly, I have to use a
  147 " region to define them, not just a keyword.  This will probably cause the syntax file
  148 " to load more slowly, but at least it will be 'correct'.
  149 
  150 syn region mysqlFunction         start="abs(" end=")" contains=ALL
  151 syn region mysqlFunction         start="acos(" end=")" contains=ALL
  152 syn region mysqlFunction         start="adddate(" end=")" contains=ALL
  153 syn region mysqlFunction         start="ascii(" end=")" contains=ALL
  154 syn region mysqlFunction         start="asin(" end=")" contains=ALL
  155 syn region mysqlFunction         start="atan(" end=")" contains=ALL
  156 syn region mysqlFunction         start="atan2(" end=")" contains=ALL
  157 syn region mysqlFunction         start="avg(" end=")" contains=ALL
  158 syn region mysqlFunction         start="benchmark(" end=")" contains=ALL
  159 syn region mysqlFunction         start="bin(" end=")" contains=ALL
  160 syn region mysqlFunction         start="bit_and(" end=")" contains=ALL
  161 syn region mysqlFunction         start="bit_count(" end=")" contains=ALL
  162 syn region mysqlFunction         start="bit_or(" end=")" contains=ALL
  163 syn region mysqlFunction         start="ceiling(" end=")" contains=ALL
  164 syn region mysqlFunction         start="character_length(" end=")" contains=ALL
  165 syn region mysqlFunction         start="char_length(" end=")" contains=ALL
  166 syn region mysqlFunction         start="concat(" end=")" contains=ALL
  167 syn region mysqlFunction         start="concat_ws(" end=")" contains=ALL
  168 syn region mysqlFunction         start="connection_id(" end=")" contains=ALL
  169 syn region mysqlFunction         start="conv(" end=")" contains=ALL
  170 syn region mysqlFunction         start="cos(" end=")" contains=ALL
  171 syn region mysqlFunction         start="cot(" end=")" contains=ALL
  172 syn region mysqlFunction         start="count(" end=")" contains=ALL
  173 syn region mysqlFunction         start="curdate(" end=")" contains=ALL
  174 syn region mysqlFunction         start="curtime(" end=")" contains=ALL
  175 syn region mysqlFunction         start="date_add(" end=")" contains=ALL
  176 syn region mysqlFunction         start="date_format(" end=")" contains=ALL
  177 syn region mysqlFunction         start="date_sub(" end=")" contains=ALL
  178 syn region mysqlFunction         start="dayname(" end=")" contains=ALL
  179 syn region mysqlFunction         start="dayofmonth(" end=")" contains=ALL
  180 syn region mysqlFunction         start="dayofweek(" end=")" contains=ALL
  181 syn region mysqlFunction         start="dayofyear(" end=")" contains=ALL
  182 syn region mysqlFunction         start="decode(" end=")" contains=ALL
  183 syn region mysqlFunction         start="degrees(" end=")" contains=ALL
  184 syn region mysqlFunction         start="elt(" end=")" contains=ALL
  185 syn region mysqlFunction         start="encode(" end=")" contains=ALL
  186 syn region mysqlFunction         start="encrypt(" end=")" contains=ALL
  187 syn region mysqlFunction         start="exp(" end=")" contains=ALL
  188 syn region mysqlFunction         start="export_set(" end=")" contains=ALL
  189 syn region mysqlFunction         start="extract(" end=")" contains=ALL
  190 syn region mysqlFunction         start="field(" end=")" contains=ALL
  191 syn region mysqlFunction         start="find_in_set(" end=")" contains=ALL
  192 syn region mysqlFunction         start="floor(" end=")" contains=ALL
  193 syn region mysqlFunction         start="format(" end=")" contains=ALL
  194 syn region mysqlFunction         start="from_days(" end=")" contains=ALL
  195 syn region mysqlFunction         start="from_unixtime(" end=")" contains=ALL
  196 syn region mysqlFunction         start="get_lock(" end=")" contains=ALL
  197 syn region mysqlFunction         start="greatest(" end=")" contains=ALL
  198 syn region mysqlFunction         start="group_unique_users(" end=")" contains=ALL
  199 syn region mysqlFunction         start="hex(" end=")" contains=ALL
  200 syn region mysqlFunction         start="inet_aton(" end=")" contains=ALL
  201 syn region mysqlFunction         start="inet_ntoa(" end=")" contains=ALL
  202 syn region mysqlFunction         start="instr(" end=")" contains=ALL
  203 syn region mysqlFunction         start="lcase(" end=")" contains=ALL
  204 syn region mysqlFunction         start="least(" end=")" contains=ALL
  205 syn region mysqlFunction         start="length(" end=")" contains=ALL
  206 syn region mysqlFunction         start="load_file(" end=")" contains=ALL
  207 syn region mysqlFunction         start="locate(" end=")" contains=ALL
  208 syn region mysqlFunction         start="log(" end=")" contains=ALL
  209 syn region mysqlFunction         start="log10(" end=")" contains=ALL
  210 syn region mysqlFunction         start="lower(" end=")" contains=ALL
  211 syn region mysqlFunction         start="lpad(" end=")" contains=ALL
  212 syn region mysqlFunction         start="ltrim(" end=")" contains=ALL
  213 syn region mysqlFunction         start="make_set(" end=")" contains=ALL
  214 syn region mysqlFunction         start="master_pos_wait(" end=")" contains=ALL
  215 syn region mysqlFunction         start="max(" end=")" contains=ALL
  216 syn region mysqlFunction         start="md5(" end=")" contains=ALL
  217 syn region mysqlFunction         start="mid(" end=")" contains=ALL
  218 syn region mysqlFunction         start="min(" end=")" contains=ALL
  219 syn region mysqlFunction         start="mod(" end=")" contains=ALL
  220 syn region mysqlFunction         start="monthname(" end=")" contains=ALL
  221 syn region mysqlFunction         start="now(" end=")" contains=ALL
  222 syn region mysqlFunction         start="oct(" end=")" contains=ALL
  223 syn region mysqlFunction         start="octet_length(" end=")" contains=ALL
  224 syn region mysqlFunction         start="ord(" end=")" contains=ALL
  225 syn region mysqlFunction         start="period_add(" end=")" contains=ALL
  226 syn region mysqlFunction         start="period_diff(" end=")" contains=ALL
  227 syn region mysqlFunction         start="pi(" end=")" contains=ALL
  228 syn region mysqlFunction         start="position(" end=")" contains=ALL
  229 syn region mysqlFunction         start="pow(" end=")" contains=ALL
  230 syn region mysqlFunction         start="power(" end=")" contains=ALL
  231 syn region mysqlFunction         start="quarter(" end=")" contains=ALL
  232 syn region mysqlFunction         start="radians(" end=")" contains=ALL
  233 syn region mysqlFunction         start="rand(" end=")" contains=ALL
  234 syn region mysqlFunction         start="release_lock(" end=")" contains=ALL
  235 syn region mysqlFunction         start="repeat(" end=")" contains=ALL
  236 syn region mysqlFunction         start="reverse(" end=")" contains=ALL
  237 syn region mysqlFunction         start="round(" end=")" contains=ALL
  238 syn region mysqlFunction         start="rpad(" end=")" contains=ALL
  239 syn region mysqlFunction         start="rtrim(" end=")" contains=ALL
  240 syn region mysqlFunction         start="sec_to_time(" end=")" contains=ALL
  241 syn region mysqlFunction         start="session_user(" end=")" contains=ALL
  242 syn region mysqlFunction         start="sign(" end=")" contains=ALL
  243 syn region mysqlFunction         start="sin(" end=")" contains=ALL
  244 syn region mysqlFunction         start="soundex(" end=")" contains=ALL
  245 syn region mysqlFunction         start="space(" end=")" contains=ALL
  246 syn region mysqlFunction         start="sqrt(" end=")" contains=ALL
  247 syn region mysqlFunction         start="std(" end=")" contains=ALL
  248 syn region mysqlFunction         start="stddev(" end=")" contains=ALL
  249 syn region mysqlFunction         start="strcmp(" end=")" contains=ALL
  250 syn region mysqlFunction         start="subdate(" end=")" contains=ALL
  251 syn region mysqlFunction         start="substring(" end=")" contains=ALL
  252 syn region mysqlFunction         start="substring_index(" end=")" contains=ALL
  253 syn region mysqlFunction         start="subtime(" end=")" contains=ALL
  254 syn region mysqlFunction         start="sum(" end=")" contains=ALL
  255 syn region mysqlFunction         start="sysdate(" end=")" contains=ALL
  256 syn region mysqlFunction         start="system_user(" end=")" contains=ALL
  257 syn region mysqlFunction         start="tan(" end=")" contains=ALL
  258 syn region mysqlFunction         start="time_format(" end=")" contains=ALL
  259 syn region mysqlFunction         start="time_to_sec(" end=")" contains=ALL
  260 syn region mysqlFunction         start="to_days(" end=")" contains=ALL
  261 syn region mysqlFunction         start="trim(" end=")" contains=ALL
  262 syn region mysqlFunction         start="ucase(" end=")" contains=ALL
  263 syn region mysqlFunction         start="unique_users(" end=")" contains=ALL
  264 syn region mysqlFunction         start="unix_timestamp(" end=")" contains=ALL
  265 syn region mysqlFunction         start="upper(" end=")" contains=ALL
  266 syn region mysqlFunction         start="user(" end=")" contains=ALL
  267 syn region mysqlFunction         start="version(" end=")" contains=ALL
  268 syn region mysqlFunction         start="week(" end=")" contains=ALL
  269 syn region mysqlFunction         start="weekday(" end=")" contains=ALL
  270 syn region mysqlFunction         start="yearweek(" end=")" contains=ALL
  271 
  272 " Define the default highlighting.
  273 " Only when an item doesn't have highlighting yet
  274 
  275 hi def link mysqlKeyword            Statement
  276 hi def link mysqlSpecial            Special
  277 hi def link mysqlString             String
  278 hi def link mysqlNumber             Number
  279 hi def link mysqlVariable           Identifier
  280 hi def link mysqlComment            Comment
  281 hi def link mysqlType               Type
  282 hi def link mysqlOperator           Statement
  283 hi def link mysqlFlow               Statement
  284 hi def link mysqlFunction           Function
  285 
  286 
  287 let b:current_syntax = "mysql"
  288