591 lines
15 KiB
PHP
591 lines
15 KiB
PHP
|
<?php
|
||
|
/*************************************************************************************
|
||
|
* sass.php
|
||
|
* -------
|
||
|
* Author: Javier Eguiluz (javier.eguiluz@gmail.com)
|
||
|
* Copyright: (c) 2014 Javier Eguiluz (javier.eguiluz@gmail.com)
|
||
|
* Release Version: 1.0.8.12
|
||
|
* Date Started: 2014/05/10
|
||
|
*
|
||
|
* SASS language file for GeSHi.
|
||
|
*
|
||
|
* CHANGES
|
||
|
* -------
|
||
|
* 2014/05/10 (1.0.0)
|
||
|
* - First Release
|
||
|
*
|
||
|
*************************************************************************************
|
||
|
*
|
||
|
* This file is part of GeSHi.
|
||
|
*
|
||
|
* GeSHi is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License as published by
|
||
|
* the Free Software Foundation; either version 2 of the License, or
|
||
|
* (at your option) any later version.
|
||
|
*
|
||
|
* GeSHi is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU General Public License
|
||
|
* along with GeSHi; if not, write to the Free Software
|
||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
*
|
||
|
************************************************************************************/
|
||
|
|
||
|
$language_data = array(
|
||
|
'LANG_NAME' => 'Sass',
|
||
|
'COMMENT_SINGLE' => array(1 => '//'),
|
||
|
'COMMENT_MULTI' => array('/*' => '*/'),
|
||
|
'COMMENT_REGEXP' => array(),
|
||
|
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
|
||
|
'QUOTEMARKS' => array('"', "'"),
|
||
|
'ESCAPE_CHAR' => '',
|
||
|
'ESCAPE_REGEXP' => array(),
|
||
|
'NUMBERS' =>
|
||
|
GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO,
|
||
|
'KEYWORDS' => array(
|
||
|
// properties
|
||
|
1 => array(
|
||
|
'azimuth',
|
||
|
'background-attachment',
|
||
|
'background-color',
|
||
|
'background-image',
|
||
|
'background-position',
|
||
|
'background-repeat',
|
||
|
'background',
|
||
|
'border-bottom-color',
|
||
|
'border-radius',
|
||
|
'border-top-left-radius',
|
||
|
'border-top-right-radius',
|
||
|
'border-bottom-right-radius',
|
||
|
'border-bottom-left-radius',
|
||
|
'border-bottom-style',
|
||
|
'border-bottom-width',
|
||
|
'border-left-color',
|
||
|
'border-left-style',
|
||
|
'border-left-width',
|
||
|
'border-right',
|
||
|
'border-right-color',
|
||
|
'border-right-style',
|
||
|
'border-right-width',
|
||
|
'border-top-color',
|
||
|
'border-top-style',
|
||
|
'border-top-width',
|
||
|
'border-bottom',
|
||
|
'border-collapse',
|
||
|
'border-left',
|
||
|
'border-width',
|
||
|
'border-color',
|
||
|
'border-spacing',
|
||
|
'border-style',
|
||
|
'border-top',
|
||
|
'border',
|
||
|
'box-shadow',
|
||
|
'caption-side',
|
||
|
'clear',
|
||
|
'clip',
|
||
|
'color',
|
||
|
'content',
|
||
|
'counter-increment',
|
||
|
'counter-reset',
|
||
|
'cue-after',
|
||
|
'cue-before',
|
||
|
'cue',
|
||
|
'cursor',
|
||
|
'direction',
|
||
|
'display',
|
||
|
'elevation',
|
||
|
'empty-cells',
|
||
|
'float',
|
||
|
'font-family',
|
||
|
'font-size',
|
||
|
'font-size-adjust',
|
||
|
'font-stretch',
|
||
|
'font-style',
|
||
|
'font-variant',
|
||
|
'font-weight',
|
||
|
'font',
|
||
|
'line-height',
|
||
|
'letter-spacing',
|
||
|
'list-style',
|
||
|
'list-style-image',
|
||
|
'list-style-position',
|
||
|
'list-style-type',
|
||
|
'margin-bottom',
|
||
|
'margin-left',
|
||
|
'margin-right',
|
||
|
'margin-top',
|
||
|
'margin',
|
||
|
'marker-offset',
|
||
|
'marks',
|
||
|
'max-height',
|
||
|
'max-width',
|
||
|
'min-height',
|
||
|
'min-width',
|
||
|
'orphans',
|
||
|
'outline',
|
||
|
'outline-color',
|
||
|
'outline-style',
|
||
|
'outline-width',
|
||
|
'overflow',
|
||
|
'padding-bottom',
|
||
|
'padding-left',
|
||
|
'padding-right',
|
||
|
'padding-top',
|
||
|
'padding',
|
||
|
'page',
|
||
|
'page-break-after',
|
||
|
'page-break-before',
|
||
|
'page-break-inside',
|
||
|
'pause-after',
|
||
|
'pause-before',
|
||
|
'pause',
|
||
|
'pitch',
|
||
|
'pitch-range',
|
||
|
'play-during',
|
||
|
'position',
|
||
|
'quotes',
|
||
|
'richness',
|
||
|
'right',
|
||
|
'size',
|
||
|
'speak-header',
|
||
|
'speak-numeral',
|
||
|
'speak-punctuation',
|
||
|
'speak',
|
||
|
'speech-rate',
|
||
|
'stress',
|
||
|
'table-layout',
|
||
|
'text-align',
|
||
|
'text-decoration',
|
||
|
'text-indent',
|
||
|
'text-shadow',
|
||
|
'text-transform',
|
||
|
'top',
|
||
|
'unicode-bidi',
|
||
|
'vertical-align',
|
||
|
'visibility',
|
||
|
'voice-family',
|
||
|
'volume',
|
||
|
'white-space',
|
||
|
'widows',
|
||
|
'width',
|
||
|
'word-spacing',
|
||
|
'z-index',
|
||
|
'bottom',
|
||
|
'left',
|
||
|
'height',
|
||
|
// media queries
|
||
|
'screen',
|
||
|
'orientation',
|
||
|
'min-device-width',
|
||
|
'max-device-width',
|
||
|
),
|
||
|
// reserved words for values
|
||
|
2 => array(
|
||
|
// colors
|
||
|
'aqua',
|
||
|
'black',
|
||
|
'blue',
|
||
|
'fuchsia',
|
||
|
'gray',
|
||
|
'green',
|
||
|
'lime',
|
||
|
'maroon',
|
||
|
'navy',
|
||
|
'olive',
|
||
|
'orange',
|
||
|
'purple',
|
||
|
'red',
|
||
|
'silver',
|
||
|
'teal',
|
||
|
'white',
|
||
|
'yellow',
|
||
|
// media queries
|
||
|
'landscape',
|
||
|
'portrait',
|
||
|
// other
|
||
|
'above',
|
||
|
'absolute',
|
||
|
'always',
|
||
|
'armenian',
|
||
|
'aural',
|
||
|
'auto',
|
||
|
'avoid',
|
||
|
'baseline',
|
||
|
'behind',
|
||
|
'below',
|
||
|
'bidi-override',
|
||
|
'blink',
|
||
|
'block',
|
||
|
'bold',
|
||
|
'bolder',
|
||
|
'both',
|
||
|
'capitalize',
|
||
|
'center-left',
|
||
|
'center-right',
|
||
|
'center',
|
||
|
'circle',
|
||
|
'cjk-ideographic',
|
||
|
'close-quote',
|
||
|
'collapse',
|
||
|
'condensed',
|
||
|
'continuous',
|
||
|
'crop',
|
||
|
'crosshair',
|
||
|
'cross',
|
||
|
'cursive',
|
||
|
'dashed',
|
||
|
'decimal-leading-zero',
|
||
|
'decimal',
|
||
|
'default',
|
||
|
'digits',
|
||
|
'disc',
|
||
|
'dotted',
|
||
|
'double',
|
||
|
'e-resize',
|
||
|
'embed',
|
||
|
'extra-condensed',
|
||
|
'extra-expanded',
|
||
|
'expanded',
|
||
|
'fantasy',
|
||
|
'far-left',
|
||
|
'far-right',
|
||
|
'faster',
|
||
|
'fast',
|
||
|
'fixed',
|
||
|
'georgian',
|
||
|
'groove',
|
||
|
'hebrew',
|
||
|
'help',
|
||
|
'hidden',
|
||
|
'hide',
|
||
|
'higher',
|
||
|
'high',
|
||
|
'hiragana-iroha',
|
||
|
'hiragana',
|
||
|
'icon',
|
||
|
'inherit',
|
||
|
'inline-table',
|
||
|
'inline',
|
||
|
'inline-block',
|
||
|
'inset',
|
||
|
'inside',
|
||
|
'italic',
|
||
|
'justify',
|
||
|
'katakana-iroha',
|
||
|
'katakana',
|
||
|
'larger',
|
||
|
'large',
|
||
|
'left-side',
|
||
|
'leftwards',
|
||
|
'level',
|
||
|
'lighter',
|
||
|
'line-through',
|
||
|
'list-item',
|
||
|
'loud',
|
||
|
'lower-alpha',
|
||
|
'lower-greek',
|
||
|
'lower-roman',
|
||
|
'lowercase',
|
||
|
'ltr',
|
||
|
'lower',
|
||
|
'low',
|
||
|
'medium',
|
||
|
'message-box',
|
||
|
'middle',
|
||
|
'monospace',
|
||
|
'n-resize',
|
||
|
'narrower',
|
||
|
'ne-resize',
|
||
|
'no-close-quote',
|
||
|
'no-open-quote',
|
||
|
'no-repeat',
|
||
|
'none',
|
||
|
'normal',
|
||
|
'nowrap',
|
||
|
'nw-resize',
|
||
|
'oblique',
|
||
|
'once',
|
||
|
'open-quote',
|
||
|
'outset',
|
||
|
'outside',
|
||
|
'overline',
|
||
|
'pointer',
|
||
|
'px',
|
||
|
'relative',
|
||
|
'repeat-x',
|
||
|
'repeat-y',
|
||
|
'repeat',
|
||
|
'ridge',
|
||
|
'right-side',
|
||
|
'rightwards',
|
||
|
's-resize',
|
||
|
'sans-serif',
|
||
|
'scroll',
|
||
|
'se-resize',
|
||
|
'semi-condensed',
|
||
|
'semi-expanded',
|
||
|
'separate',
|
||
|
'serif',
|
||
|
'show',
|
||
|
'silent',
|
||
|
'slow',
|
||
|
'slower',
|
||
|
'small-caps',
|
||
|
'small-caption',
|
||
|
'smaller',
|
||
|
'soft',
|
||
|
'solid',
|
||
|
'spell-out',
|
||
|
'square',
|
||
|
'static',
|
||
|
'status-bar',
|
||
|
'super',
|
||
|
'sw-resize',
|
||
|
'table-caption',
|
||
|
'table-cell',
|
||
|
'table-column',
|
||
|
'table-column-group',
|
||
|
'table-footer-group',
|
||
|
'table-header-group',
|
||
|
'table-row',
|
||
|
'table-row-group',
|
||
|
'text',
|
||
|
'text-bottom',
|
||
|
'text-top',
|
||
|
'thick',
|
||
|
'thin',
|
||
|
'transparent',
|
||
|
'ultra-condensed',
|
||
|
'ultra-expanded',
|
||
|
'underline',
|
||
|
'upper-alpha',
|
||
|
'upper-latin',
|
||
|
'upper-roman',
|
||
|
'uppercase',
|
||
|
'url',
|
||
|
'visible',
|
||
|
'w-resize',
|
||
|
'wait',
|
||
|
'wider',
|
||
|
'x-fast',
|
||
|
'x-high',
|
||
|
'x-large',
|
||
|
'x-loud',
|
||
|
'x-low',
|
||
|
'x-small',
|
||
|
'x-soft',
|
||
|
'xx-large',
|
||
|
'xx-small',
|
||
|
'yes'
|
||
|
),
|
||
|
// directives
|
||
|
3 => array(
|
||
|
'@at-root',
|
||
|
'@charset',
|
||
|
'@content',
|
||
|
'@debug',
|
||
|
'@each',
|
||
|
'@else',
|
||
|
'@elseif',
|
||
|
'@else if',
|
||
|
'@extend',
|
||
|
'@font-face',
|
||
|
'@for',
|
||
|
'@function',
|
||
|
'@if',
|
||
|
'@import',
|
||
|
'@include',
|
||
|
'@media',
|
||
|
'@mixin',
|
||
|
'@namespace',
|
||
|
'@page',
|
||
|
'@return',
|
||
|
'@warn',
|
||
|
'@while',
|
||
|
),
|
||
|
// built-in Sass functions
|
||
|
4 => array(
|
||
|
'rgb',
|
||
|
'rgba',
|
||
|
'mix',
|
||
|
'hsl',
|
||
|
'hsla',
|
||
|
'hue',
|
||
|
'saturation',
|
||
|
'lightness',
|
||
|
'adjust-hue',
|
||
|
'lighten',
|
||
|
'darken',
|
||
|
'saturate',
|
||
|
'desaturate',
|
||
|
'grayscale',
|
||
|
'complement',
|
||
|
'invert',
|
||
|
'alpha',
|
||
|
'opacify',
|
||
|
'transparentize',
|
||
|
'adjust-color',
|
||
|
'scale-color',
|
||
|
'change-color',
|
||
|
'ie-hex-str',
|
||
|
'unquote',
|
||
|
'quote',
|
||
|
'str-length',
|
||
|
'str-insert',
|
||
|
'str-index',
|
||
|
'str-slice',
|
||
|
'to-upper-case',
|
||
|
'to-lower-case',
|
||
|
'percentage',
|
||
|
'round',
|
||
|
'ceil',
|
||
|
'floor',
|
||
|
'abs',
|
||
|
'min',
|
||
|
'max',
|
||
|
'random',
|
||
|
'length',
|
||
|
'nth',
|
||
|
'join',
|
||
|
'append',
|
||
|
'zip',
|
||
|
'index',
|
||
|
'list-separator',
|
||
|
'map-get',
|
||
|
'map-merge',
|
||
|
'map-remove',
|
||
|
'map-keys',
|
||
|
'map-values',
|
||
|
'map-has-key',
|
||
|
'keywords',
|
||
|
'feature-exists',
|
||
|
'variable-exists',
|
||
|
'global-variable-exists',
|
||
|
'function-exists',
|
||
|
'mixin-exists',
|
||
|
'inspect',
|
||
|
'type-of',
|
||
|
'unit',
|
||
|
'unitless',
|
||
|
'comparable',
|
||
|
'call',
|
||
|
'if',
|
||
|
'unique-id',
|
||
|
),
|
||
|
// reserved words
|
||
|
5 => array(
|
||
|
'!important',
|
||
|
'!default',
|
||
|
'!optional',
|
||
|
'true',
|
||
|
'false',
|
||
|
'with',
|
||
|
'without',
|
||
|
'null',
|
||
|
'from',
|
||
|
'through',
|
||
|
'to',
|
||
|
'in',
|
||
|
'and',
|
||
|
'or',
|
||
|
'only',
|
||
|
'not',
|
||
|
),
|
||
|
),
|
||
|
'SYMBOLS' => array(
|
||
|
'(',
|
||
|
')',
|
||
|
'{',
|
||
|
'}',
|
||
|
':',
|
||
|
';',
|
||
|
'>',
|
||
|
'+',
|
||
|
'*',
|
||
|
',',
|
||
|
'^',
|
||
|
'=',
|
||
|
'&',
|
||
|
'~',
|
||
|
'!',
|
||
|
'%',
|
||
|
'?',
|
||
|
'...',
|
||
|
),
|
||
|
'CASE_SENSITIVE' => array(
|
||
|
GESHI_COMMENTS => false,
|
||
|
1 => false,
|
||
|
2 => false,
|
||
|
3 => false,
|
||
|
4 => false,
|
||
|
5 => false,
|
||
|
),
|
||
|
'STYLES' => array(
|
||
|
'KEYWORDS' => array(
|
||
|
1 => 'color: #000000; font-weight: bold;',
|
||
|
2 => 'color: #993333;',
|
||
|
3 => 'color: #990000;',
|
||
|
4 => 'color: #000000; font-weight: bold;',
|
||
|
5 => 'color: #009900;',
|
||
|
),
|
||
|
'COMMENTS' => array(
|
||
|
1 => 'color: #006600; font-style: italic;',
|
||
|
'MULTI' => 'color: #006600; font-style: italic;'
|
||
|
),
|
||
|
'ESCAPE_CHAR' => array(),
|
||
|
'BRACKETS' => array(
|
||
|
0 => 'color: #00AA00;'
|
||
|
),
|
||
|
'STRINGS' => array(
|
||
|
0 => 'color: #ff0000;'
|
||
|
),
|
||
|
'NUMBERS' => array(
|
||
|
0 => 'color: #cc66cc;'
|
||
|
),
|
||
|
'METHODS' => array(),
|
||
|
'SYMBOLS' => array(
|
||
|
0 => 'color: #00AA00;'
|
||
|
),
|
||
|
'SCRIPT' => array(),
|
||
|
'REGEXPS' => array(
|
||
|
0 => 'color: #cc00cc;',
|
||
|
1 => 'color: #6666ff;',
|
||
|
2 => 'color: #3333ff;',
|
||
|
3 => 'color: #933;',
|
||
|
4 => 'color: #ff6633;',
|
||
|
5 => 'color: #0066ff;',
|
||
|
)
|
||
|
),
|
||
|
'URLS' => array(
|
||
|
1 => '',
|
||
|
2 => '',
|
||
|
3 => '',
|
||
|
4 => '',
|
||
|
5 => '',
|
||
|
),
|
||
|
'OOLANG' => false,
|
||
|
'OBJECT_SPLITTERS' => array(),
|
||
|
'REGEXPS' => array(
|
||
|
// Variables
|
||
|
0 => "[$][a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*",
|
||
|
// Hexadecimal colors
|
||
|
1 => "\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})",
|
||
|
// CSS Pseudo classes
|
||
|
// note: & is needed for > (i.e. > )
|
||
|
2 => "(?<!\\\\):(?!\d)[a-zA-Z0-9\-]+\b(?:\s*(?=[\{\.#a-zA-Z,:+*&](.|\n)|<\|))",
|
||
|
// Measurements
|
||
|
3 => "[+\-]?(\d+|(\d*\.\d+))(em|ex|pt|px|cm|in|%)",
|
||
|
// Interpolation
|
||
|
4 => "(\#\{.*\})",
|
||
|
// Browser prefixed properties
|
||
|
5 => "(\-(moz|ms|o|webkit)\-[a-z\-]*)",
|
||
|
),
|
||
|
'STRICT_MODE_APPLIES' => GESHI_NEVER,
|
||
|
'SCRIPT_DELIMITERS' => array(),
|
||
|
'HIGHLIGHT_STRICT_BLOCK' => array(),
|
||
|
'TAB_WIDTH' => 2,
|
||
|
);
|