summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--ftplugin/less.vim22
-rw-r--r--indent/less.vim10
-rw-r--r--packages.yaml6
-rw-r--r--syntax/less.vim121
5 files changed, 86 insertions, 75 deletions
diff --git a/README.md b/README.md
index 2fbbccd9..e41b56ec 100644
--- a/README.md
+++ b/README.md
@@ -152,7 +152,7 @@ If you need full functionality of any plugin, please use it directly with your p
- [julia](https://github.com/JuliaEditorSupport/julia-vim)
- [kotlin](https://github.com/udalov/kotlin-vim)
- [ledger](https://github.com/ledger/vim-ledger)
-- [less](https://github.com/groenewege/vim-less)
+- [less](https://github.com/vim/vim/tree/master/runtime)
- [lilypond](https://github.com/anowlcalledjosh/vim-lilypond)
- [livescript](https://github.com/gkz/vim-ls)
- [llvm](https://github.com/rhysd/vim-llvm)
diff --git a/ftplugin/less.vim b/ftplugin/less.vim
index ecb060b9..2a8ff172 100644
--- a/ftplugin/less.vim
+++ b/ftplugin/less.vim
@@ -1,10 +1,10 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'less') == -1
" Vim filetype plugin
-" Language: LessCSS
-" Author: Tim Pope <vimNOSPAM@tpope.org>
-" Maintainer: Leonard Ehrenfried <leonard.ehrenfried@web.de>
-" Last Change: 2011 Sep 30
+" Language: less
+" Maintainer: Alessandro Vioni <jenoma@gmail.com>
+" URL: https://github.com/genoma/vim-less
+" Last Change: 2014 November 24
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -14,17 +14,11 @@ let b:did_ftplugin = 1
let b:undo_ftplugin = "setl cms< def< inc< inex< ofu< sua<"
-setlocal iskeyword+=-
-setlocal commentstring=//%s
-setlocal define=^\\s*\\%(@mixin\\\|=\\)
-setlocal includeexpr=substitute(v:fname,'\\%(.*/\\\|^\\)\\zs','_','')
-setlocal omnifunc=csscomplete#CompleteCSS
-setlocal suffixesadd=.less
-setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,://
-setlocal fo=croql
+setlocal formatoptions-=t formatoptions+=croql
-let &l:include = '^\s*@import\s\+\%(url(\)\=["'']\='
+setlocal comments=:// commentstring=//\ %s
-" vim:set sw=2:
+setlocal omnifunc=csscomplete#CompleteCSS
+setlocal suffixesadd=.less
endif
diff --git a/indent/less.vim b/indent/less.vim
index 61739f73..628f2ff3 100644
--- a/indent/less.vim
+++ b/indent/less.vim
@@ -1,13 +1,17 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'less') == -1
" Vim indent file
-" Language: LessCSS
-" Maintainer: Leonard Ehrenfried <leonard.ehrenfried@web.de>
-" Last Change: 2011 Sep 26
+" Language: less
+" Maintainer: Alessandro Vioni <jenoma@gmail.com>
+" URL: https://github.com/genoma/vim-less
+" Last Change: 2014 November 24
if exists("b:did_indent")
finish
endif
runtime! indent/css.vim
+
+" vim:set sw=2:
+
endif
diff --git a/packages.yaml b/packages.yaml
index 4796a1b5..855a2305 100644
--- a/packages.yaml
+++ b/packages.yaml
@@ -958,10 +958,8 @@ filetypes:
- journal
---
name: less
-remote: groenewege/vim-less
-ignored_dirs:
-# We don't want to slow down .html files
-- after
+remote: vim/vim:runtime
+glob: '**/less.vim'
filetypes:
- name: less
linguist: Less
diff --git a/syntax/less.vim b/syntax/less.vim
index 3f497bc6..0b0c5373 100644
--- a/syntax/less.vim
+++ b/syntax/less.vim
@@ -1,68 +1,83 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'less') == -1
+" Vim syntax file
+" Language: less
+" Maintainer: Alessandro Vioni <jenoma@gmail.com>
+" URL: https://github.com/genoma/vim-less
+" Last Change: 2014 November 24
+
if exists("b:current_syntax")
finish
endif
runtime! syntax/css.vim
runtime! after/syntax/css.vim
-" load files from vim-css3-syntax plugin (https://github.com/hail2u/vim-css3-syntax)
-runtime! after/syntax/css/*.vim
syn case ignore
-syn region lessDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssTagName,cssPseudoClass,cssUrl,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,lessDefinition,lessComment,lessClassChar,lessVariable,lessMixinChar,lessAmpersandChar,lessFunction,lessNestedSelector,@cssColors fold
-
-syn match lessVariable "@[[:alnum:]_-]\+" contained
-syn match lessVariable "@[[:alnum:]_-]\+" nextgroup=lessVariableAssignment skipwhite
-syn match lessVariableAssignment ":" contained nextgroup=lessVariableValue skipwhite
-syn match lessVariableValue ".*;"me=e-1 contained contains=lessVariable,lessOperator,lessDefault,cssValue.*,@cssColors "me=e-1 means that the last char of the pattern is not highlighted
-
-syn match lessOperator "+" contained
-syn match lessOperator "-" contained
-syn match lessOperator "/" contained
-syn match lessOperator "*" contained
-
-syn match lessNestedSelector "[^/]* {"me=e-1 contained contains=cssTagName,cssAttributeSelector,lessAmpersandChar,lessVariable,lessMixinChar,lessFunction,lessNestedProperty
-syn match lessNestedProperty "[[:alnum:]]\+:"me=e-1 contained
-
-syn match lessDefault "!default" contained
-
-syn match lessMixinChar "\.[[:alnum:]_-]\@=" contained nextgroup=lessClass
-syn match lessAmpersandChar "&" contained nextgroup=lessClass,cssPseudoClass
-syn match lessClass "[[:alnum:]_-]\+" contained
-
-" functions {{{
-
-" string functions
-syn keyword lessFunction escape e % containedin=cssDefinition contained
-" misc functions
-syn keyword lessFunction unit containedin=cssDefinition contained
-" math functions
-syn keyword lessFunction ceil floor percentage round containedin=cssDefinition contained
-" color definition
-syn keyword lessFunction rgb rgba argb hsl hsla hsv hsva containedin=cssDefinition contained
-" color channel information
-syn keyword lessFunction hue saturation lightness red green blue alpha luma containedin=cssDefinition contained
-" color operations
-syn keyword lessFunction saturate desaturate lighten darken fadein fadeout fade spin mix greyscale contrast containedin=cssDefinition contained
-" color blending
-syn keyword lessFunction multiply screen overlay softlight hardlight difference exclusion average negation containedin=cssDefinition contained
-
-" }}}
-
-syn match lessComment "//.*$" contains=@Spell
-
-hi def link lessVariable Special
-hi def link lessVariableValue Constant
-hi def link lessDefault Special
-hi def link lessComment Comment
-hi def link lessFunction Function
-hi def link lessMixinChar Special
-hi def link lessAmpersandChar Special
-hi def link lessNestedProperty Type
-hi def link lessClass PreProc
+syn cluster lessCssProperties contains=cssFontProp,cssFontDescriptorProp,cssColorProp,cssTextProp,cssBoxProp,cssGeneratedContentProp,cssPagingProp,cssUIProp,cssRenderProp,cssAuralProp,cssTableProp
+syn cluster lessCssAttributes contains=css.*Attr,lessEndOfLineComment,lessComment,cssValue.*,cssColor,cssURL,lessDefault,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssRenderProp
+
+syn region lessDefinition matchgroup=cssBraces start="{" end="}" contains=TOP
+
+syn match lessProperty "\%([{};]\s*\|^\)\@<=\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:" contains=css.*Prop skipwhite nextgroup=lessCssAttribute contained containedin=lessDefinition
+syn match lessProperty "^\s*\zs\s\%(\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:\|:[[:alnum:]-]\+\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=lessCssAttribute
+syn match lessProperty "^\s*\zs\s\%(:\=[[:alnum:]-]\+\s*=\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=lessCssAttribute
+syn match lessCssAttribute +\%("\%([^"]\|\\"\)*"\|'\%([^']\|\\'\)*'\|#{[^{}]*}\|[^{};]\)*+ contained contains=@lessCssAttributes,lessVariable,lessFunction,lessInterpolation
+syn match lessDefault "!default\>" contained
+
+" less variables and media queries
+syn match lessVariable "@[[:alnum:]_-]\+" nextgroup=lessCssAttribute skipwhite
+syn match lessMedia "@media" nextgroup=lessCssAttribute skipwhite
+
+" Less functions
+syn match lessFunction "\<\%(escape\|e\|unit\)\>(\@=" contained
+syn match lessFunction "\<\%(ceil\|floor\|percentage\|round\|sqrt\|abs\|sin\|asin\|cos\|acos\|tan\|atan\|pi\|pow\|min\|max\)\>(\@=" contained
+syn match lessFunction "\<\%(rgb\|rgba\|argb\|argb\|hsl\|hsla\|hsv\|hsva\)\>(\@=" contained
+syn match lessFunction "\<\%(hue\|saturation\|lightness\|red\|green\|blue\|alpha\|luma\)\>(\@=" contained
+syn match lessFunction "\<\%(saturate\|desaturate\|lighten\|darken\|fadein\|fadeout\|fade\|spin\|mix\|greyscale\|contrast\)\>(\@=" contained
+syn match lessFunction "\<\%(multiply\|screen\|overlay\|softlight\|hardlight\|difference\|exclusion\|average\|negation\)\>(\@=" contained
+
+" Less id class visualization
+syn match lessIdChar "#[[:alnum:]_-]\@=" nextgroup=lessId,lessClassIdCall
+syn match lessId "[[:alnum:]_-]\+" contained
+syn match lessClassIdCall "[[:alnum:]_-]\+()" contained
+
+syn match lessClassChar "\.[[:alnum:]_-]\@=" nextgroup=lessClass,lessClassCall
+syn match lessClass "[[:alnum:]_-]\+" contained
+syn match lessClassCall "[[:alnum:]_-]\+()" contained
+
+syn match lessAmpersand "&" contains=lessIdChar,lessClassChar
+
+syn region lessInclude start="@import" end=";\|$" contains=lessComment,cssURL,cssUnicodeEscape,cssMediaType,cssStringQ,cssStringQQ
+
+syn keyword lessTodo FIXME NOTE TODO OPTIMIZE XXX contained
+syn region lessComment start="^\z(\s*\)//" end="^\%(\z1 \)\@!" contains=lessTodo,@Spell
+syn region lessCssComment start="^\z(\s*\)/\*" end="^\%(\z1 \)\@!" contains=lessTodo,@Spell
+syn match lessEndOfLineComment "//.*" contains=lessComment,lessTodo,@Spell
+
+hi def link lessEndOfLineComment lessComment
+hi def link lessCssComment lessComment
+hi def link lessComment Comment
+hi def link lessDefault cssImportant
+hi def link lessVariable Identifier
+hi def link lessFunction PreProc
+hi def link lessTodo Todo
+hi def link lessInclude Include
+hi def link lessIdChar Special
+hi def link lessClassChar Special
+hi def link lessAmpersand Character
+hi def link lessId Identifier
+hi def link lessClass Type
+hi def link lessCssAttribute PreProc
+hi def link lessClassCall Type
+hi def link lessClassIdCall Type
+hi def link lessTagName cssTagName
+hi def link lessDeprecated cssDeprecated
+hi def link lessMedia cssMedia
let b:current_syntax = "less"
+" vim:set sw=2:
+
endif