summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md288
-rw-r--r--autoload/fsharp.vim2
-rw-r--r--autoload/go/config.vim17
-rw-r--r--autoload/julia/doc.vim4
-rw-r--r--doc/julia-vim.txt87
-rw-r--r--doc/vim-go.txt49
-rw-r--r--ftplugin/falcon.vim1
-rw-r--r--ftplugin/fortran.vim12
-rw-r--r--ftplugin/ocaml.vim2
-rw-r--r--indent/fortran.vim12
-rw-r--r--indent/julia.vim143
-rwxr-xr-xscripts/build4
-rw-r--r--syntax/apache.vim4
-rw-r--r--syntax/asterisk.vim4
-rw-r--r--syntax/cabal-2.vim7
-rw-r--r--syntax/crystal.vim2
-rw-r--r--syntax/css.vim2
-rw-r--r--syntax/fortran.vim30
-rw-r--r--syntax/julia.vim39
-rw-r--r--syntax/less.vim3
-rw-r--r--syntax/qml.vim2
21 files changed, 493 insertions, 221 deletions
diff --git a/README.md b/README.md
index f96b2a2d..8111f3c2 100644
--- a/README.md
+++ b/README.md
@@ -44,159 +44,159 @@ If you need full functionality of any plugin, please use it directly with your p
On top of all language packs from [vim repository](https://github.com/vim/vim/tree/master/runtime), vim-polyglot includes:
<!--Language Packs-->
-- [acpiasl](https://github.com/martinlroth/vim-acpi-asl)(asl filetype)
-- [ansible](https://github.com/pearofducks/ansible-vim)(yaml.ansible filetype)
-- [apiblueprint](https://github.com/kylef/apiblueprint.vim)(apiblueprint filetype)
-- [applescript](https://github.com/mityu/vim-applescript)(applescript filetype)
-- [arduino](https://github.com/sudar/vim-arduino-syntax)(arduino filetype)
-- [asciidoc](https://github.com/asciidoc/vim-asciidoc)(asciidoc filetype)
-- [autohotkey](https://github.com/hnamikaw/vim-autohotkey)(autohotkey filetype)
-- [blade](https://github.com/jwalton512/vim-blade)(blade filetype)
-- [brewfile](https://github.com/bfontaine/Brewfile.vim)(brewfile filetype)
-- [c/c++](https://github.com/vim-jp/vim-cpp)(cpp, and c filetypes)
-- [caddyfile](https://github.com/isobit/vim-caddyfile)(caddyfile filetype)
-- [carp](https://github.com/hellerve/carp-vim)(carp filetype)
+- [acpiasl](https://github.com/martinlroth/vim-acpi-asl) (asl filetype)
+- [ansible](https://github.com/pearofducks/ansible-vim) (yaml.ansible filetype)
+- [apiblueprint](https://github.com/kylef/apiblueprint.vim) (apiblueprint filetype)
+- [applescript](https://github.com/mityu/vim-applescript) (applescript filetype)
+- [arduino](https://github.com/sudar/vim-arduino-syntax) (arduino filetype)
+- [asciidoc](https://github.com/asciidoc/vim-asciidoc) (asciidoc filetype)
+- [autohotkey](https://github.com/hnamikaw/vim-autohotkey) (autohotkey filetype)
+- [blade](https://github.com/jwalton512/vim-blade) (blade filetype)
+- [brewfile](https://github.com/bfontaine/Brewfile.vim) (brewfile filetype)
+- [c/c++](https://github.com/vim-jp/vim-cpp) (cpp, and c filetypes)
+- [caddyfile](https://github.com/isobit/vim-caddyfile) (caddyfile filetype)
+- [carp](https://github.com/hellerve/carp-vim) (carp filetype)
- [cjsx](https://github.com/mtscout6/vim-cjsx)
-- [clojure](https://github.com/guns/vim-clojure-static)(clojure filetype)
-- [cmake](https://github.com/pboettch/vim-cmake-syntax)(cmake filetype)
-- [coffee-script](https://github.com/kchmck/vim-coffee-script)(coffee, litcoffe and litcoffee filetypes)
+- [clojure](https://github.com/guns/vim-clojure-static) (clojure filetype)
+- [cmake](https://github.com/pboettch/vim-cmake-syntax) (cmake filetype)
+- [coffee-script](https://github.com/kchmck/vim-coffee-script) (coffee, litcoffe and litcoffee filetypes)
- [cpp-modern](https://github.com/bfrg/vim-cpp-modern)
-- [cql](https://github.com/elubow/cql-vim)(cql filetype)
-- [cryptol](https://github.com/victoredwardocallaghan/cryptol.vim)(cryptol filetype)
-- [crystal](https://github.com/rhysd/vim-crystal)(crystal, ecrysta and ecrystal filetypes)
-- [csv](https://github.com/chrisbra/csv.vim)(csv filetype)
-- [cucumber](https://github.com/tpope/vim-cucumber)(cucumber filetype)
-- [cue](https://github.com/mgrabovsky/vim-cuesheet)(cuesheet filetype)
-- [dart](https://github.com/dart-lang/dart-vim-plugin)(dart filetype)
-- [dhall](https://github.com/vmchale/dhall-vim)(dhall filetype)
-- [dlang](https://github.com/JesseKPhillips/d.vim)(d, dcov, dd, ddoc, dsd and dsdl filetypes)
-- [dockerfile](https://github.com/ekalinin/Dockerfile.vim)(yaml.docker-compose filetype)
-- [elixir](https://github.com/elixir-lang/vim-elixir)(elixir, eelixi and eelixir filetypes)
-- [elm](https://github.com/andys8/vim-elm-syntax)(elm filetype)
-- [emberscript](https://github.com/yalesov/vim-ember-script)(ember-script filetype)
-- [emblem](https://github.com/yalesov/vim-emblem)(emblem filetype)
-- [erlang](https://github.com/vim-erlang/vim-erlang-runtime)(erlang filetype)
-- [fennel](https://github.com/bakpakin/fennel.vim)(fennel filetype)
-- [ferm](https://github.com/vim-scripts/ferm.vim)(ferm filetype)
-- [fish](https://github.com/georgewitteman/vim-fish)(fish filetype)
-- [flatbuffers](https://github.com/dcharbon/vim-flatbuffers)(fbs filetype)
-- [fsharp](https://github.com/ionide/Ionide-vim)(fsharp filetype)
-- [gdscript](https://github.com/calviken/vim-gdscript3)(gdscript3 filetype)
-- [git](https://github.com/tpope/vim-git)(gitconfig, gitrebase, gitsendemail, gitcommi and gitcommit filetypes)
-- [gitignore](https://github.com/fszymanski/fzf-gitignore)(gitignore filetype)
-- [glsl](https://github.com/tikhomirov/vim-glsl)(glsl filetype)
-- [gmpl](https://github.com/maelvalais/gmpl.vim)(gmpl filetype)
-- [gnuplot](https://github.com/vim-scripts/gnuplot-syntax-highlighting)(gnuplot filetype)
-- [go](https://github.com/fatih/vim-go)(go, gomod, gohtmltmp and gohtmltmpl filetypes)
+- [cql](https://github.com/elubow/cql-vim) (cql filetype)
+- [cryptol](https://github.com/victoredwardocallaghan/cryptol.vim) (cryptol filetype)
+- [crystal](https://github.com/rhysd/vim-crystal) (crystal, ecrysta and ecrystal filetypes)
+- [csv](https://github.com/chrisbra/csv.vim) (csv filetype)
+- [cucumber](https://github.com/tpope/vim-cucumber) (cucumber filetype)
+- [cue](https://github.com/mgrabovsky/vim-cuesheet) (cuesheet filetype)
+- [dart](https://github.com/dart-lang/dart-vim-plugin) (dart filetype)
+- [dhall](https://github.com/vmchale/dhall-vim) (dhall filetype)
+- [dlang](https://github.com/JesseKPhillips/d.vim) (d, dcov, dd, ddoc, dsd and dsdl filetypes)
+- [dockerfile](https://github.com/ekalinin/Dockerfile.vim) (yaml.docker-compose filetype)
+- [elixir](https://github.com/elixir-lang/vim-elixir) (elixir, eelixi and eelixir filetypes)
+- [elm](https://github.com/andys8/vim-elm-syntax) (elm filetype)
+- [emberscript](https://github.com/yalesov/vim-ember-script) (ember-script filetype)
+- [emblem](https://github.com/yalesov/vim-emblem) (emblem filetype)
+- [erlang](https://github.com/vim-erlang/vim-erlang-runtime) (erlang filetype)
+- [fennel](https://github.com/bakpakin/fennel.vim) (fennel filetype)
+- [ferm](https://github.com/vim-scripts/ferm.vim) (ferm filetype)
+- [fish](https://github.com/georgewitteman/vim-fish) (fish filetype)
+- [flatbuffers](https://github.com/dcharbon/vim-flatbuffers) (fbs filetype)
+- [fsharp](https://github.com/ionide/Ionide-vim) (fsharp filetype)
+- [gdscript](https://github.com/calviken/vim-gdscript3) (gdscript3 filetype)
+- [git](https://github.com/tpope/vim-git) (gitconfig, gitrebase, gitsendemail, gitcommi and gitcommit filetypes)
+- [gitignore](https://github.com/fszymanski/fzf-gitignore) (gitignore filetype)
+- [glsl](https://github.com/tikhomirov/vim-glsl) (glsl filetype)
+- [gmpl](https://github.com/maelvalais/gmpl.vim) (gmpl filetype)
+- [gnuplot](https://github.com/vim-scripts/gnuplot-syntax-highlighting) (gnuplot filetype)
+- [go](https://github.com/fatih/vim-go) (go, gomod, gohtmltmp and gohtmltmpl filetypes)
- [gradle](https://github.com/tfnico/vim-gradle)
-- [graphql](https://github.com/jparise/vim-graphql)(graphql filetype)
-- [haml](https://github.com/tpope/vim-haml)(haml filetype)
-- [handlebars](https://github.com/mustache/vim-mustache-handlebars)(html.mustache, html.handlebar and html.handlebars filetypes)
-- [haproxy](https://github.com/CH-DanReif/haproxy.vim)(haproxy filetype)
-- [haskell](https://github.com/neovimhaskell/haskell-vim)(haskell filetype)
-- [haxe](https://github.com/yaymukund/vim-haxe)(haxe filetype)
-- [hcl](https://github.com/b4b4r07/vim-hcl)(hcl filetype)
-- [helm](https://github.com/towolf/vim-helm)(helm filetype)
-- [help](https://github.com/neovim/neovim/tree/master/runtime)(help filetype)
-- [hive](https://github.com/zebradil/hive.vim)(hive filetype)
+- [graphql](https://github.com/jparise/vim-graphql) (graphql filetype)
+- [haml](https://github.com/tpope/vim-haml) (haml filetype)
+- [handlebars](https://github.com/mustache/vim-mustache-handlebars) (html.mustache, html.handlebar and html.handlebars filetypes)
+- [haproxy](https://github.com/CH-DanReif/haproxy.vim) (haproxy filetype)
+- [haskell](https://github.com/neovimhaskell/haskell-vim) (haskell filetype)
+- [haxe](https://github.com/yaymukund/vim-haxe) (haxe filetype)
+- [hcl](https://github.com/b4b4r07/vim-hcl) (hcl filetype)
+- [helm](https://github.com/towolf/vim-helm) (helm filetype)
+- [help](https://github.com/neovim/neovim/tree/master/runtime) (help filetype)
+- [hive](https://github.com/zebradil/hive.vim) (hive filetype)
- [html5](https://github.com/sheerun/html5.vim)
-- [i3](https://github.com/mboughaba/i3config.vim)(i3config filetype)
-- [icalendar](https://github.com/chutzpah/icalendar.vim)(icalendar filetype)
-- [idris2](https://github.com/edwinb/idris2-vim)(idris2, lidris and lidris2 filetypes)
-- [idris](https://github.com/idris-hackers/idris-vim)(idris filetype)
-- [ion](https://github.com/vmchale/ion-vim)(ion filetype)
+- [i3](https://github.com/mboughaba/i3config.vim) (i3config filetype)
+- [icalendar](https://github.com/chutzpah/icalendar.vim) (icalendar filetype)
+- [idris2](https://github.com/edwinb/idris2-vim) (idris2, lidris and lidris2 filetypes)
+- [idris](https://github.com/idris-hackers/idris-vim) (idris filetype)
+- [ion](https://github.com/vmchale/ion-vim) (ion filetype)
- [javascript-sql](https://github.com/statico/vim-javascript-sql)
-- [javascript](https://github.com/pangloss/vim-javascript)(javascript, flo and flow filetypes)
-- [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax)(Jenkinsfile filetype)
-- [jq](https://github.com/vito-c/jq.vim)(jq filetype)
-- [json5](https://github.com/GutenYe/json5.vim)(json5 filetype)
-- [json](https://github.com/elzr/vim-json)(json filetype)
-- [jsonnet](https://github.com/google/vim-jsonnet)(jsonnet filetype)
-- [jst](https://github.com/briancollins/vim-jst)(jst filetype)
-- [jsx](https://github.com/MaxMEllon/vim-jsx-pretty)(javascriptreact filetype)
-- [julia](https://github.com/JuliaEditorSupport/julia-vim)(julia filetype)
-- [kotlin](https://github.com/udalov/kotlin-vim)(kotlin filetype)
-- [ledger](https://github.com/ledger/vim-ledger)(ledger filetype)
-- [lilypond](https://github.com/anowlcalledjosh/vim-lilypond)(lilypond filetype)
-- [livescript](https://github.com/gkz/vim-ls)(livescript filetype)
-- [llvm](https://github.com/rhysd/vim-llvm)(llvm, tablege and tablegen filetypes)
-- [log](https://github.com/MTDL9/vim-log-highlighting)(log filetype)
-- [lua](https://github.com/tbastos/vim-lua)(lua filetype)
-- [mako](https://github.com/sophacles/vim-bundle-mako)(mako filetype)
-- [markdown](https://github.com/plasticboy/vim-markdown)(markdown filetype)
-- [mathematica](https://github.com/voldikss/vim-mma)(mma filetype)
-- [mdx](https://github.com/jxnblk/vim-mdx-js)(markdown.mdx filetype)
-- [meson](https://github.com/mesonbuild/meson/tree/master/data/syntax-highlighting/vim)(meson, dosin and dosini filetypes)
-- [moonscript](https://github.com/leafo/moonscript-vim)(moon filetype)
-- [nginx](https://github.com/chr4/nginx.vim)(nginx filetype)
-- [nim](https://github.com/zah/nim.vim)(nim filetype)
-- [nix](https://github.com/LnL7/vim-nix)(nix filetype)
-- [objc](https://github.com/b4winckler/vim-objc)(objc filetype)
-- [ocaml](https://github.com/rgrinberg/vim-ocaml)(ocaml, omake, opam, oasis, dune, ocamlbuild_tags, ocpbuild, ocpbuildroot, sexpli and sexplib filetypes)
-- [octave](https://github.com/McSinyx/vim-octave)(octave filetype)
-- [odin](https://github.com/Tetralux/odin.vim)(odin filetype)
-- [opencl](https://github.com/petRUShka/vim-opencl)(opencl filetype)
-- [perl](https://github.com/vim-perl/vim-perl)(perl, pod, mason, tt2, tt2html, x and xs filetypes)
-- [pgsql](https://github.com/lifepillar/pgsql.vim)(sql filetype)
-- [php](https://github.com/StanAngeloff/php.vim)(php filetype)
-- [plantuml](https://github.com/aklt/plantuml-syntax)(plantuml filetype)
-- [pony](https://github.com/jakwings/vim-pony)(pony filetype)
-- [powershell](https://github.com/PProvost/vim-ps1)(ps1, ps1xm and ps1xml filetypes)
-- [protobuf](https://github.com/uarun/vim-protobuf)(proto filetype)
-- [pug](https://github.com/digitaltoad/vim-pug)(pug filetype)
-- [puppet](https://github.com/rodjek/vim-puppet)(puppet, embeddedpuppe and embeddedpuppet filetypes)
-- [purescript](https://github.com/purescript-contrib/purescript-vim)(purescript filetype)
+- [javascript](https://github.com/pangloss/vim-javascript) (javascript, flo and flow filetypes)
+- [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax) (Jenkinsfile filetype)
+- [jq](https://github.com/vito-c/jq.vim) (jq filetype)
+- [json5](https://github.com/GutenYe/json5.vim) (json5 filetype)
+- [json](https://github.com/elzr/vim-json) (json filetype)
+- [jsonnet](https://github.com/google/vim-jsonnet) (jsonnet filetype)
+- [jst](https://github.com/briancollins/vim-jst) (jst filetype)
+- [jsx](https://github.com/MaxMEllon/vim-jsx-pretty) (javascriptreact filetype)
+- [julia](https://github.com/JuliaEditorSupport/julia-vim) (julia filetype)
+- [kotlin](https://github.com/udalov/kotlin-vim) (kotlin filetype)
+- [ledger](https://github.com/ledger/vim-ledger) (ledger filetype)
+- [lilypond](https://github.com/anowlcalledjosh/vim-lilypond) (lilypond filetype)
+- [livescript](https://github.com/gkz/vim-ls) (livescript filetype)
+- [llvm](https://github.com/rhysd/vim-llvm) (llvm, tablege and tablegen filetypes)
+- [log](https://github.com/MTDL9/vim-log-highlighting) (log filetype)
+- [lua](https://github.com/tbastos/vim-lua) (lua filetype)
+- [mako](https://github.com/sophacles/vim-bundle-mako) (mako filetype)
+- [markdown](https://github.com/plasticboy/vim-markdown) (markdown filetype)
+- [mathematica](https://github.com/voldikss/vim-mma) (mma filetype)
+- [mdx](https://github.com/jxnblk/vim-mdx-js) (markdown.mdx filetype)
+- [meson](https://github.com/mesonbuild/meson/tree/master/data/syntax-highlighting/vim) (meson, dosin and dosini filetypes)
+- [moonscript](https://github.com/leafo/moonscript-vim) (moon filetype)
+- [nginx](https://github.com/chr4/nginx.vim) (nginx filetype)
+- [nim](https://github.com/zah/nim.vim) (nim filetype)
+- [nix](https://github.com/LnL7/vim-nix) (nix filetype)
+- [objc](https://github.com/b4winckler/vim-objc) (objc filetype)
+- [ocaml](https://github.com/rgrinberg/vim-ocaml) (ocaml, omake, opam, oasis, dune, ocamlbuild_tags, ocpbuild, ocpbuildroot, sexpli and sexplib filetypes)
+- [octave](https://github.com/McSinyx/vim-octave) (octave filetype)
+- [odin](https://github.com/Tetralux/odin.vim) (odin filetype)
+- [opencl](https://github.com/petRUShka/vim-opencl) (opencl filetype)
+- [perl](https://github.com/vim-perl/vim-perl) (perl, pod, mason, tt2, tt2html, x and xs filetypes)
+- [pgsql](https://github.com/lifepillar/pgsql.vim) (sql filetype)
+- [php](https://github.com/StanAngeloff/php.vim) (php filetype)
+- [plantuml](https://github.com/aklt/plantuml-syntax) (plantuml filetype)
+- [pony](https://github.com/jakwings/vim-pony) (pony filetype)
+- [powershell](https://github.com/PProvost/vim-ps1) (ps1, ps1xm and ps1xml filetypes)
+- [protobuf](https://github.com/uarun/vim-protobuf) (proto filetype)
+- [pug](https://github.com/digitaltoad/vim-pug) (pug filetype)
+- [puppet](https://github.com/rodjek/vim-puppet) (puppet, embeddedpuppe and embeddedpuppet filetypes)
+- [purescript](https://github.com/purescript-contrib/purescript-vim) (purescript filetype)
- [python-compiler](https://github.com/aliev/vim-compiler-python)
- [python-indent](https://github.com/Vimjas/vim-python-pep8-indent)
-- [python](https://github.com/vim-python/python-syntax)(python filetype)
-- [qmake](https://github.com/artoj/qmake-syntax-vim)(qmake filetype)
-- [qml](https://github.com/peterhoeg/vim-qml)(qml filetype)
-- [r-lang](https://github.com/vim-scripts/R.vim)(r, rhel and rhelp filetypes)
-- [racket](https://github.com/wlangstroth/vim-racket)(racket filetype)
-- [ragel](https://github.com/jneen/ragel.vim)(ragel filetype)
-- [raku](https://github.com/Raku/vim-raku)(raku filetype)
-- [raml](https://github.com/IN3D/vim-raml)(raml filetype)
-- [razor](https://github.com/adamclerk/vim-razor)(razor filetype)
-- [reason](https://github.com/reasonml-editor/vim-reason-plus)(reason filetype)
-- [requirements](https://github.com/raimon49/requirements.txt.vim)(requirements filetype)
-- [rspec](https://github.com/keith/rspec.vim)(ruby filetype)
-- [rst](https://github.com/marshallward/vim-restructuredtext)(rst filetype)
-- [ruby](https://github.com/vim-ruby/vim-ruby)(ruby, erub and eruby filetypes)
-- [rust](https://github.com/rust-lang/rust.vim)(rust filetype)
-- [scala](https://github.com/derekwyatt/vim-scala)(scala filetype)
-- [scss](https://github.com/cakebaker/scss-syntax.vim)(scss filetype)
-- [sh](https://github.com/arzg/vim-sh)(sh, zs and zsh filetypes)
-- [slim](https://github.com/slim-template/vim-slim)(slim filetype)
-- [slime](https://github.com/slime-lang/vim-slime-syntax)(slime filetype)
-- [smt2](https://github.com/bohlender/vim-smt2)(smt2 filetype)
-- [solidity](https://github.com/tomlion/vim-solidity)(solidity filetype)
-- [stylus](https://github.com/wavded/vim-stylus)(stylus filetype)
-- [svelte](https://github.com/evanleck/vim-svelte/tree/main)(svelte filetype)
+- [python](https://github.com/vim-python/python-syntax) (python filetype)
+- [qmake](https://github.com/artoj/qmake-syntax-vim) (qmake filetype)
+- [qml](https://github.com/peterhoeg/vim-qml) (qml filetype)
+- [r-lang](https://github.com/vim-scripts/R.vim) (r, rhel and rhelp filetypes)
+- [racket](https://github.com/wlangstroth/vim-racket) (racket filetype)
+- [ragel](https://github.com/jneen/ragel.vim) (ragel filetype)
+- [raku](https://github.com/Raku/vim-raku) (raku filetype)
+- [raml](https://github.com/IN3D/vim-raml) (raml filetype)
+- [razor](https://github.com/adamclerk/vim-razor) (razor filetype)
+- [reason](https://github.com/reasonml-editor/vim-reason-plus) (reason filetype)
+- [requirements](https://github.com/raimon49/requirements.txt.vim) (requirements filetype)
+- [rspec](https://github.com/keith/rspec.vim) (ruby filetype)
+- [rst](https://github.com/marshallward/vim-restructuredtext) (rst filetype)
+- [ruby](https://github.com/vim-ruby/vim-ruby) (ruby, erub and eruby filetypes)
+- [rust](https://github.com/rust-lang/rust.vim) (rust filetype)
+- [scala](https://github.com/derekwyatt/vim-scala) (scala filetype)
+- [scss](https://github.com/cakebaker/scss-syntax.vim) (scss filetype)
+- [sh](https://github.com/arzg/vim-sh) (sh, zs and zsh filetypes)
+- [slim](https://github.com/slim-template/vim-slim) (slim filetype)
+- [slime](https://github.com/slime-lang/vim-slime-syntax) (slime filetype)
+- [smt2](https://github.com/bohlender/vim-smt2) (smt2 filetype)
+- [solidity](https://github.com/tomlion/vim-solidity) (solidity filetype)
+- [stylus](https://github.com/wavded/vim-stylus) (stylus filetype)
+- [svelte](https://github.com/evanleck/vim-svelte/tree/main) (svelte filetype)
- [svg-indent](https://github.com/jasonshell/vim-svg-indent)
-- [svg](https://github.com/vim-scripts/svg.vim)(svg filetype)
-- [swift](https://github.com/keith/swift.vim)(swift filetype)
-- [sxhkd](https://github.com/baskerville/vim-sxhkdrc)(sxhkdrc filetype)
-- [systemd](https://github.com/wgwoods/vim-systemd-syntax)(systemd filetype)
-- [textile](https://github.com/timcharper/textile.vim)(textile filetype)
-- [thrift](https://github.com/solarnz/thrift.vim)(thrift filetype)
-- [tmux](https://github.com/ericpruitt/tmux.vim/tree/master/vim)(tmux filetype)
-- [toml](https://github.com/cespare/vim-toml)(toml filetype)
-- [tptp](https://github.com/c-cube/vim-tptp)(tptp filetype)
-- [twig](https://github.com/lumiliet/vim-twig)(html.twig, xml.twi and xml.twig filetypes)
-- [typescript](https://github.com/HerringtonDarkholme/yats.vim)(typescript, typescriptreac and typescriptreact filetypes)
-- [unison](https://github.com/unisonweb/unison/tree/trunk/editor-support/vim)(unison filetype)
-- [v](https://github.com/ollykel/v-vim)(vlang filetype)
-- [vala](https://github.com/arrufat/vala.vim)(vala filetype)
-- [vbnet](https://github.com/vim-scripts/vbnet.vim)(vbnet filetype)
-- [vcl](https://github.com/smerrill/vcl-vim-plugin)(vcl filetype)
-- [velocity](https://github.com/lepture/vim-velocity)(velocity filetype)
-- [vue](https://github.com/posva/vim-vue)(vue filetype)
-- [xdc](https://github.com/amal-khailtash/vim-xdc-syntax)(xdc filetype)
-- [xml](https://github.com/amadeus/vim-xml)(xml filetype)
-- [xsl](https://github.com/vim-scripts/XSLT-syntax)(xsl filetype)
+- [svg](https://github.com/vim-scripts/svg.vim) (svg filetype)
+- [swift](https://github.com/keith/swift.vim) (swift filetype)
+- [sxhkd](https://github.com/baskerville/vim-sxhkdrc) (sxhkdrc filetype)
+- [systemd](https://github.com/wgwoods/vim-systemd-syntax) (systemd filetype)
+- [textile](https://github.com/timcharper/textile.vim) (textile filetype)
+- [thrift](https://github.com/solarnz/thrift.vim) (thrift filetype)
+- [tmux](https://github.com/ericpruitt/tmux.vim/tree/master/vim) (tmux filetype)
+- [toml](https://github.com/cespare/vim-toml) (toml filetype)
+- [tptp](https://github.com/c-cube/vim-tptp) (tptp filetype)
+- [twig](https://github.com/lumiliet/vim-twig) (html.twig, xml.twi and xml.twig filetypes)
+- [typescript](https://github.com/HerringtonDarkholme/yats.vim) (typescript, typescriptreac and typescriptreact filetypes)
+- [unison](https://github.com/unisonweb/unison/tree/trunk/editor-support/vim) (unison filetype)
+- [v](https://github.com/ollykel/v-vim) (vlang filetype)
+- [vala](https://github.com/arrufat/vala.vim) (vala filetype)
+- [vbnet](https://github.com/vim-scripts/vbnet.vim) (vbnet filetype)
+- [vcl](https://github.com/smerrill/vcl-vim-plugin) (vcl filetype)
+- [velocity](https://github.com/lepture/vim-velocity) (velocity filetype)
+- [vue](https://github.com/posva/vim-vue) (vue filetype)
+- [xdc](https://github.com/amal-khailtash/vim-xdc-syntax) (xdc filetype)
+- [xml](https://github.com/amadeus/vim-xml) (xml filetype)
+- [xsl](https://github.com/vim-scripts/XSLT-syntax) (xsl filetype)
- [yard](https://github.com/noprompt/vim-yardoc)
-- [zephir](https://github.com/xwsoul/vim-zephir)(zephir filetype)
-- [zig](https://github.com/ziglang/zig.vim)(zir, zi and zig filetypes)
+- [zephir](https://github.com/xwsoul/vim-zephir) (zephir filetype)
+- [zig](https://github.com/ziglang/zig.vim) (zir, zi and zig filetypes)
- [zinit](https://github.com/zinit-zsh/zplugin-vim-syntax)
<!--/Language Packs-->
diff --git a/autoload/fsharp.vim b/autoload/fsharp.vim
index 6816d822..90313231 100644
--- a/autoload/fsharp.vim
+++ b/autoload/fsharp.vim
@@ -330,7 +330,7 @@ function! s:download(branch)
let zip = s:script_root_dir . "fsac.zip"
call system(
\ 'curl -fLo ' . zip . ' --create-dirs ' .
- \ '"https://ci.appveyor.com/api/projects/fsautocomplete/fsautocomplete/artifacts/bin/pkgs/fsautocomplete.netcore.zip?branch=' . a:branch . '"'
+ \ '"https://github.com/fsharp/FsAutoComplete/releases/latest/download/fsautocomplete.netcore.zip"'
\ )
if v:shell_error == 0
call system('unzip -o -d ' . s:script_root_dir . "/fsac " . zip)
diff --git a/autoload/go/config.vim b/autoload/go/config.vim
index b450ad16..ce33d996 100644
--- a/autoload/go/config.vim
+++ b/autoload/go/config.vim
@@ -524,7 +524,7 @@ function! go#config#ReferrersMode() abort
endfunction
function! go#config#ImplementsMode() abort
- return get(g:, 'go_implements_mode', 'guru')
+ return get(g:, 'go_implements_mode', 'gopls')
endfunction
function! go#config#GoplsCompleteUnimported() abort
@@ -586,6 +586,21 @@ function! go#config#FillStructMode() abort
return get(g:, 'go_fillstruct_mode', 'fillstruct')
endfunction
+function! go#config#DebugMappings() abort
+ let l:default = {
+ \ '(go-debug-continue)': {'key': '<F5>'},
+ \ '(go-debug-print)': {'key': '<F6>'},
+ \ '(go-debug-breakpoint)': {'key': '<F9>'},
+ \ '(go-debug-next)': {'key': '<F10>'},
+ \ '(go-debug-step)': {'key': '<F11>'},
+ \ '(go-debug-halt)': {'key': '<F8>'},
+ \ }
+
+ let l:user = deepcopy(get(g:, 'go_debug_mappings', {}))
+
+ return extend(l:user, l:default, 'keep')
+endfunction
+
" Set the default value. A value of "1" is a shortcut for this, for
" compatibility reasons.
if exists("g:go_gorename_prefill") && g:go_gorename_prefill == 1
diff --git a/autoload/julia/doc.vim b/autoload/julia/doc.vim
index 7907c94a..0bba5bfc 100644
--- a/autoload/julia/doc.vim
+++ b/autoload/julia/doc.vim
@@ -37,7 +37,7 @@ let s:NODOCPATTERN = '\C\VNo documentation found.'
function! julia#doc#lookup(keyword, ...) abort
let juliapath = get(a:000, 0, g:julia#doc#juliapath)
let keyword = escape(a:keyword, '"\')
- let cmd = printf('%s -E "@doc %s"', juliapath, keyword)
+ let cmd = printf('%s --compile=min --optimize=0 -E "@doc %s"', juliapath, keyword)
return systemlist(cmd)
endfunction
@@ -238,7 +238,7 @@ endfunction
function! s:likely(str) abort
" escape twice
let str = escape(escape(a:str, '"\'), '"\')
- let cmd = printf('%s -E "%s(\"%s\")"', g:julia#doc#juliapath, s:REPL_SEARCH, str)
+ let cmd = printf('%s --compile=min --optimize=0 -E "%s(\"%s\")"', g:julia#doc#juliapath, s:REPL_SEARCH, str)
let output = systemlist(cmd)
return split(matchstr(output[0], '\C^search: \zs.*'))
endfunction
diff --git a/doc/julia-vim.txt b/doc/julia-vim.txt
index 3f09e3bd..5cf181d0 100644
--- a/doc/julia-vim.txt
+++ b/doc/julia-vim.txt
@@ -349,7 +349,7 @@ julia#function_assign2block()
statements are removed; if the result is empty, `nothing` is
substituted. Leading macros (e.g. `@inline` or `@compat`) are
recognized and preserved by the transformation.
-
+
In order to make this functionality practical, it is advisable
to map it to some key combination, e.g.:
>
@@ -386,6 +386,91 @@ g:julia_highlight_operators
Determines whether to apply syntax highlighting to operators.
Default: on (set to `1`).
+ *g:julia_indent_align_import*
+g:julia_indent_align_import
+
+ In a multi-line import/using/export statment, the lines after
+ the first one use some special alignment rules by default,
+ e.g.:
+>
+ import X: one,
+ two,
+ three
+ export four,
+ five,
+ six
+<
+ When `g:julia_indent_align_import` is `0` instead, the usual
+ indentation is used:
+>
+ import X: one,
+ two,
+ three
+ export four,
+ five,
+ six
+
+ *g:julia_indent_align_brackets*
+g:julia_indent_align_brackets
+
+ In a multi-line bracketed expression (except for function
+ arguments, see |g:julia_indent_align_funcargs|), the lines
+ after the first one use some special alignment rules by
+ default, e.g.:
+>
+ matrix = [1 2 3;
+ 4 5 6]
+ tpl = (
+ abc = Dict(a=>1,
+ b=>2),
+ def = [1 2;
+ 3 4],
+ xyz = SubArray{eltype(P),
+ N, P, I,
+ false}
+ )
+<
+ When `g:julia_indent_align_brackets` is `0` instead, an extra
+ indent is used:
+>
+ matrix = [1 2 3;
+ 4 5 6]
+ tpl = (
+ abc = Dict(a=>1,
+ b=>2),
+ def = [1 2;
+ 3 4],
+ xyz = SubArray{eltype(P),
+ N, P, I,
+ false}
+ )
+<
+
+ *g:julia_indent_align_funcargs*
+g:julia_indent_align_funcargs
+
+ In a function definition, when the arguments span multiple
+ lines, the lines after the first one get an extra indentation
+ step by default, e.g.:
+>
+ function functionanme(
+ arg1, arg2,
+ arg3, arg4
+ )
+ # function body
+ end
+<
+ By setting `g:julia_indent_align_funcargs` to `1`, the
+ arguments are aligned to the bracket instead (they work as any
+ other bracket with the default value of
+ |g:julia_indent_align_brackets|):
+>
+ function functionanme(arg1, arg2,
+ arg3, arg4
+ )
+ # function body
+ end
+<
==============================================================================
ABOUT *julia-vim-about*
diff --git a/doc/vim-go.txt b/doc/vim-go.txt
index cc412836..d33a8b38 100644
--- a/doc/vim-go.txt
+++ b/doc/vim-go.txt
@@ -1498,9 +1498,9 @@ other packages. Valid options are `gopls` and `guru`. By default it's `gopls`.
Use this option to define the command to be used for |:GoImplements|.
The Implements feature in gopls is still new and being worked upon.
-Valid options are `gopls` and `guru`. By default it's `guru`.
+Valid options are `gopls` and `guru`. By default it's `gopls`.
>
- let g:go_implements_mode = 'guru'
+ let g:go_implements_mode = 'gopls'
<
*'g:go_def_mapping_enabled'*
@@ -2490,7 +2490,52 @@ Show only variables on the right-hand side: >
let g:go_debug_windows = {
\ 'vars': 'rightbelow 60vnew',
\ }
+
+ *'g:go_debug_mappings'*
+
+Contains custom key mapping information to customize the active mappings
+when debugging.
+
+Only the customizations desired need to be provided; the debugger will use its
+default key mappings for any mapping not defined here.
+
+This value should be a dictionary whose keys are the plugin mapping commands
+(e.g. `(go-debug-continue)`). The values are dictionaries with two keys.
+`key` and `attributes`.
+
+`key` is expected to be the key to map (i.e. it's the `lhs` in a mapping).
+`key` can be empty or missing to prevent a key mapping from being applied for
+one the named mappings.
+
+`arguments` is the string of `map-arguments` for the mapping (e.g.
+`<nowait>`).
+
+The first item must be the `lhs` to use for the mapping. The optional
+second item is for `:map-arguments`. All mappings will always be `:map-local`,
+so there is never a need to include `"<buffer>"` in the the arguments.
+>
+ let g:go_debug_mappings = {
+ \ '(go-debug-continue)': {'key': 'c', 'arguments': '<nowait>'],
+ \ '(go-debug-stop)': {'key': 'q'},
+ \ '(go-debug-next)': {'key': 'n', 'arguments': '<nowait>'},
+ \ '(go-debug-step)': {'key': 's'},
+ \}
<
+
+Defaults are equivalent to:
+>
+ let g:go_debug_mappings = {
+ \ '(go-debug-continue)': {'key': '<F5>'},
+ \ '(go-debug-print)': {'key': '<F6>'},
+ \ '(go-debug-breakpoint)': {'key': '<F9>'},
+ \ '(go-debug-next)': {'key': '<F10>'},
+ \ '(go-debug-step)': {'key': '<F11>'},
+ \ '(go-debug-halt)': {'key': '<F8>'},
+ \ }
+<
+
+Your user specified settings will be merged with the defaults.
+
*'g:go_debug_address'*
Server address `dlv` will listen on; must be in `hostname:port` format.
diff --git a/ftplugin/falcon.vim b/ftplugin/falcon.vim
index 752f5bc3..defc4cbe 100644
--- a/ftplugin/falcon.vim
+++ b/ftplugin/falcon.vim
@@ -5,6 +5,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'falcon') == -1
" Author: Steven Oliver <oliver.steven@gmail.com>
" Copyright: Copyright (c) 2009-2013 Steven Oliver
" License: You may redistribute this under the same terms as Vim itself
+" Last Update: 2020 Oct 10
" --------------------------------------------------------------------------
" Only do this when not done yet for this buffer
diff --git a/ftplugin/fortran.vim b/ftplugin/fortran.vim
index 7b8a1fb1..efbc2884 100644
--- a/ftplugin/fortran.vim
+++ b/ftplugin/fortran.vim
@@ -2,14 +2,14 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fortran') == -1
" Vim settings file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, 77, 66)
-" Version: 0.50
-" Last Change: 2020 Apr 20
-" Patched By: Eisuke Kawashima
+" Version: (v52) 2020 October 07
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-plugin from Vim
" Credits:
-" Useful suggestions were made by Stefano Zacchiroli, Hendrik Merx, Ben
-" Fritz, and David Barnett.
+" Version 0.1 was created in September 2000 by Ajit Thakkar.
+" Since then, useful suggestions and contributions have been made, in order, by:
+" Stefano Zacchiroli, Hendrik Merx, Ben Fritz, David Barnett, Eisuke Kawashima,
+" and Doug Kearns.
" Only do these settings when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -121,7 +121,7 @@ if !exists("b:match_words")
endif
" File filters for :browse e
-if has("gui_win32") && !exists("b:browsefilter")
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Fortran Files (*.f;*.for;*.f77;*.f90;*.f95;*.f03;*.f08;*.fpp;*.ftn)\t*.f;*.for;*.f77;*.f90;*.f95;*.f03;*.f08;*.fpp;*.ftn\n" .
\ "All Files (*.*)\t*.*\n"
endif
diff --git a/ftplugin/ocaml.vim b/ftplugin/ocaml.vim
index 10ca4920..87ad6fa6 100644
--- a/ftplugin/ocaml.vim
+++ b/ftplugin/ocaml.vim
@@ -524,7 +524,7 @@ endfunction
"c. link this stuff with what the user wants
" ie. get the expression selected/under the cursor
- let s:ocaml_word_char = '\w|[\u00ac-\uffff]|'''
+ let s:ocaml_word_char = '\w|[\xc0-\xff]|'''
"In: the current mode (eg. "visual", "normal", etc.)
"Out: the borders of the expression we are looking for the type
diff --git a/indent/fortran.vim b/indent/fortran.vim
index 1fed2974..a4c5f130 100644
--- a/indent/fortran.vim
+++ b/indent/fortran.vim
@@ -2,14 +2,14 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fortran') == -1
" Vim indent file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
-" Version: 47
-" Last Change: 2020 Apr 20
-" Patched By: Eisuke Kawashima
+" Version: (v48) 2020 October 07
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-indent from Vim
" Credits:
-" Useful suggestions were made, in chronological order, by:
-" Albert Oliver Serra, Takuya Fujiwara and Philipp Edelmann.
+" Version 0.1 was created in September 2000 by Ajit Thakkar.
+" Since then, useful suggestions and contributions have been made, in order, by:
+" Albert Oliver Serra, Takuya Fujiwara, Philipp Edelmann, Eisuke Kawashima,
+" and Louis Cochen.
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -148,7 +148,7 @@ function FortranGetIndent(lnum)
\. 'type\|forall\|associate\|enum\|block\)\)\>'
let ind = ind - shiftwidth()
" Fix indent for case statement immediately after select
- if prevstat =~? '\<select\s\+\(case\|type\)\>'
+ if prevstat =~? '\<select\s*\(case\|type\)\>'
let ind = ind + shiftwidth()
endif
endif
diff --git a/indent/julia.vim b/indent/julia.vim
index d95fa193..6f4be447 100644
--- a/indent/julia.vim
+++ b/indent/julia.vim
@@ -21,7 +21,7 @@ if exists("*GetJuliaIndent")
finish
endif
-let s:skipPatterns = '\<julia\%(Comprehension\%(For\|If\)\|RangeKeyword\|Comment[LM]\|\%([bsv]\|ip\|big\|MIME\|Shell\|Printf\|Doc\)\=String\|RegEx\|SymbolS\?\)\>'
+let s:skipPatterns = '\<julia\%(Comprehension\%(For\|If\)\|RangeKeyword\|Comment\%([LM]\|Delim\)\|\%([bsv]\|ip\|big\|MIME\|Shell\|Printf\|Doc\)\=String\|RegEx\|SymbolS\?\)\>'
function JuliaMatch(lnum, str, regex, st, ...)
let s = a:st
@@ -51,7 +51,7 @@ function GetJuliaNestingStruct(lnum, ...)
let blocks_stack = []
let num_closed_blocks = 0
while 1
- let fb = JuliaMatch(a:lnum, line, '@\@<!\<\%(if\|else\%(if\)\?\|while\|for\|try\|catch\|finally\|\%(staged\)\?function\|macro\|begin\|mutable\s\+struct\|\%(mutable\s\+\)\@<!struct\|\%(abstract\|primitive\)\s\+type\|immutable\|let\|\%(bare\)\?module\|quote\|do\)\>', s, e)
+ let fb = JuliaMatch(a:lnum, line, '@\@<!\<\%(if\|else\%(if\)\?\|while\|for\|try\|catch\|finally\|\%(staged\)\?function\|macro\|begin\|mutable\s\+struct\|\%(mutable\s\+\)\@<!struct\|\%(abstract\|primitive\)\s\+type\|let\|\%(bare\)\?module\|quote\|do\)\>', s, e)
let fe = JuliaMatch(a:lnum, line, '@\@<!\<end\>', s, e)
if fb < 0 && fe < 0
@@ -255,14 +255,18 @@ function GetJuliaNestingBrackets(lnum, c)
endwhile
let first_open_bracket = -1
let last_open_bracket = -1
+ let infuncargs = 0
if len(brackets_stack) > 0
let first_open_bracket = brackets_stack[0][1]
let last_open_bracket = brackets_stack[-1][1]
+ if brackets_stack[-1][0] == 'par' && IsFunctionArgPar(a:lnum, last_open_bracket)
+ let infuncargs = 1
+ endif
endif
- return [first_open_bracket, last_open_bracket, last_closed_bracket]
+ return [first_open_bracket, last_open_bracket, last_closed_bracket, infuncargs]
endfunction
-let s:bracketBlocks = '\<julia\%(\%(\%(Printf\)\?Par\|SqBra\|CurBra\)Block\|ParBlockInRange\|StringVars\%(Par\|SqBra\|CurBra\)\|Dollar\%(Par\|SqBra\)\|QuotedParBlockS\?\)\>'
+let s:bracketBlocks = '\<julia\%(\%(\%(Printf\)\?Par\|SqBra\%(Idx\)\?\|CurBra\)Block\|ParBlockInRange\|StringVars\%(Par\|SqBra\|CurBra\)\|Dollar\%(Par\|SqBra\)\|QuotedParBlockS\?\)\>'
function IsInBrackets(lnum, c)
let stack = map(synstack(a:lnum, a:c), 'synIDattr(v:val, "name")')
@@ -272,10 +276,40 @@ endfunction
function IsInDocString(lnum)
let stack = map(synstack(a:lnum, 1), 'synIDattr(v:val, "name")')
- call filter(stack, 'v:val =~# "\\<juliaDocString\\>"')
+ call filter(stack, 'v:val =~# "\\<juliaDocString\\(Delim\\)\\?\\>"')
return len(stack) > 0
endfunction
+function IsInContinuationImportLine(lnum)
+ let stack = map(synstack(a:lnum, 1), 'synIDattr(v:val, "name")')
+ call filter(stack, 'v:val =~# "\\<juliaImportLine\\>"')
+ if len(stack) == 0
+ return 0
+ endif
+ return JuliaMatch(a:lnum, getline(a:lnum), '\<\%(import\|using\|export\)\>', indent(a:lnum)) == -1
+endfunction
+
+function IsFunctionArgPar(lnum, c)
+ if a:c == 0
+ return 0
+ endif
+ let stack = map(synstack(a:lnum, a:c-1), 'synIDattr(v:val, "name")')
+ return stack[-1] == 'juliaFunctionBlock'
+endfunction
+
+function JumpToMatch(lnum, last_closed_bracket)
+ " we use the % command to skip back (tries to ues matchit if possible,
+ " otherwise resorts to vim's default, which is buggy but better than
+ " nothing)
+ call cursor(a:lnum, a:last_closed_bracket)
+ let percmap = maparg("%", "n")
+ if exists("g:loaded_matchit") && percmap =~# 'Match\%(it\|_wrapper\)'
+ normal %
+ else
+ normal! %
+ end
+endfunction
+
" Auxiliary function to find a line which does not start in the middle of a
" multiline bracketed expression, to be used as reference for block
" indentation.
@@ -314,30 +348,29 @@ function GetJuliaIndent()
let lim = -1
" Multiline bracketed expressions take precedence
+ let align_brackets = get(g:, "julia_indent_align_brackets", 1)
+ let align_funcargs = get(g:, "julia_indent_align_funcargs", 0)
let c = len(getline(lnum)) + 1
while IsInBrackets(lnum, c)
- let [first_open_bracket, last_open_bracket, last_closed_bracket] = GetJuliaNestingBrackets(lnum, c)
+ let [first_open_bracket, last_open_bracket, last_closed_bracket, infuncargs] = GetJuliaNestingBrackets(lnum, c)
" First scenario: the previous line has a hanging open bracket:
" set the indentation to match the opening bracket (plus an extra space)
+ " unless we're in a function arguments list or alignment is disabled, in
+ " which case we just add an extra indent
if last_open_bracket != -1
- let st = last_open_bracket
- let ind = virtcol([lnum, st + 1])
+ if (!infuncargs && align_brackets) || (infuncargs && align_funcargs)
+ let st = last_open_bracket
+ let ind = virtcol([lnum, st + 1])
+ else
+ let ind = indent(lnum) + shiftwidth()
+ endif
" Second scenario: some multiline bracketed expression was closed in the
" previous line. But since we know we are still in a bracketed expression,
- " we need to find the line where the bracket was open
+ " we need to find the line where the bracket was opened
elseif last_closed_bracket != -1
- " we use the % command to skip back (tries to ues matchit if possible,
- " otherwise resorts to vim's default, which is buggy but better than
- " nothing)
- call cursor(lnum, last_closed_bracket)
- let percmap = maparg("%", "n")
- if exists("g:loaded_matchit") && percmap =~# 'Match\%(it\|_wrapper\)'
- normal %
- else
- normal! %
- end
+ call JumpToMatch(lnum, last_closed_bracket)
if line(".") == lnum
" something wrong here, give up
let ind = indent(lnum)
@@ -354,15 +387,28 @@ function GetJuliaIndent()
endif
endif
- " Third scenario: nothing special, or matchit not available: keep the indentation
+ " Third scenario: nothing special: keep the indentation
else
let ind = indent(lnum)
endif
- " In case the current line starts with a closing bracket, we align it with
- " the opening one.
+ " Does the current line starts with a closing bracket? Then depending on
+ " the situation we align it with the opening one, or we let the rest of
+ " the code figure it out (the case in which we're closing a function
+ " argument list is special-cased)
if JuliaMatch(v:lnum, getline(v:lnum), '[])}]', indent(v:lnum)) == indent(v:lnum) && ind > 0
- return ind - 1
+ if !align_brackets && !align_funcargs
+ let ind = -1
+ elseif (align_brackets && getline(v:lnum)[indent(v:lnum)] != ')') || align_funcargs
+ return ind - 1
+ else " must be a ')' and align_brackets==1 and align_funcargs==0
+ call JumpToMatch(v:lnum, indent(v:lnum))
+ if IsFunctionArgPar(line("."), col("."))
+ let ind = -1
+ else
+ return ind - 1
+ endif
+ endif
endif
break
@@ -374,7 +420,7 @@ function GetJuliaIndent()
let [lnum,ind] = LastBlockIndent(lnum)
let c = len(getline(lnum)) + 1
if IsInBrackets(lnum, c)
- let [first_open_bracket, last_open_bracket, last_closed_bracket] = GetJuliaNestingBrackets(lnum, c)
+ let [first_open_bracket, last_open_bracket, last_closed_bracket, infuncargs] = GetJuliaNestingBrackets(lnum, c)
let lim = first_open_bracket
endif
end
@@ -389,6 +435,55 @@ function GetJuliaIndent()
" Decrease indentation for each closed block in the current line
let ind -= shiftwidth() * num_closed_blocks
+ " Additional special case: multiline import/using/export statements
+
+ let prevline = getline(lnum)
+ " Are we in a multiline import/using/export statement, right below the
+ " opening line?
+ if IsInContinuationImportLine(v:lnum) && !IsInContinuationImportLine(lnum)
+ if get(g:, 'julia_indent_align_import', 1)
+ " if the opening line has a colon followed by non-comments, use it as
+ " reference point
+ let cind = JuliaMatch(lnum, prevline, ':', indent(lnum), lim)
+ " echo "cind=".string(cind) | sleep 1
+ if cind >= 0
+ let nonwhiteind = JuliaMatch(lnum, prevline, '\S', cind+1)
+ if nonwhiteind >= 0
+ " return match(prevline, '\S', cind+1) " a bit overkill...
+ return cind + 2
+ endif
+ else
+ " if the opening line is not a naked import/using/export statement, use
+ " it as reference
+ let iind = JuliaMatch(lnum, prevline, '\<import\|using\|export\>', indent(lnum), lim)
+ if iind >= 0
+ " assuming whitespace after using... so no `using(XYZ)` please!
+ let nonwhiteind = JuliaMatch(lnum, prevline, '\S', iind+6)
+ if nonwhiteind >= 0
+ return match(prevline, '\S', iind+6)
+ endif
+ endif
+ endif
+ endif
+ let ind += shiftwidth()
+
+ " Or did we just close a multiline import/using/export statement?
+ elseif !IsInContinuationImportLine(v:lnum) && IsInContinuationImportLine(lnum)
+ " find the starting line of the statement
+ let ilnum = 0
+ for iln in range(lnum-1, 1, -1)
+ if !IsInContinuationImportLine(iln)
+ let ilnum = iln
+ break
+ endif
+ endfor
+ if ilnum == 0
+ " something went horribly wrong, give up
+ let ind = indent(lnum)
+ endif
+ let ind = indent(ilnum)
+ endif
+
return ind
endfunction
diff --git a/scripts/build b/scripts/build
index 40ac7f33..c2e5d41a 100755
--- a/scripts/build
+++ b/scripts/build
@@ -531,9 +531,9 @@ def extract(packages)
end
if package["filetypes"].size > 1
- output[-1] << "(#{package["filetypes"].map { |f| f["name"] }.join(", ")[0..-2]} and #{package["filetypes"].last["name"]} filetypes)"
+ output[-1] << " (#{package["filetypes"].map { |f| f["name"] }.join(", ")[0..-2]} and #{package["filetypes"].last["name"]} filetypes)"
elsif package["filetypes"].size > 0
- output[-1] << "(#{package["filetypes"].first["name"]} filetype)"
+ output[-1] << " (#{package["filetypes"].first["name"]} filetype)"
end
progress
diff --git a/syntax/apache.vim b/syntax/apache.vim
index b515c411..737f478f 100644
--- a/syntax/apache.vim
+++ b/syntax/apache.vim
@@ -5,7 +5,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'apache') == -1
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
" License: This file can be redistribued and/or modified under the same terms
" as Vim itself.
-" Last Change: 2018-12-06
+" Last Change: 2020 Oct 07
" Notes: Last synced with apache-2.2.3, version 1.x is no longer supported
" TODO: see particular FIXME's scattered through the file
" make it really linewise?
@@ -44,6 +44,8 @@ syn keyword apacheOption user group
syn match apacheOption "\<valid-user\>"
syn case match
syn keyword apacheMethodOption GET POST PUT DELETE CONNECT OPTIONS TRACE PATCH PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK contained
+" Added as suggested by Mikko Koivunalho
+syn keyword apacheMethodOption BASELINE-CONTROL CHECKIN CHECKOUT LABEL MERGE MKACTIVITY MKWORKSPACE REPORT UNCHECKOUT UPDATE VERSION-CONTROL contained
syn case ignore
syn match apacheSection "<\/\=\(Directory\|DirectoryMatch\|Files\|FilesMatch\|IfModule\|IfDefine\|Location\|LocationMatch\|VirtualHost\)[^>]*>" contains=apacheAnything
syn match apacheLimitSection "<\/\=\(Limit\|LimitExcept\)[^>]*>" contains=apacheLimitSectionKeyword,apacheMethodOption,apacheError
diff --git a/syntax/asterisk.vim b/syntax/asterisk.vim
index f29ae119..e065fb4a 100644
--- a/syntax/asterisk.vim
+++ b/syntax/asterisk.vim
@@ -21,7 +21,7 @@ syn match asteriskComment ";.*" contains=asteriskTodo
syn match asteriskContext "\[.\{-}\]"
syn match asteriskExten "^\s*\zsexten\s*=>\?\s*[^,]\+\ze," contains=asteriskPattern nextgroup=asteriskPriority
syn match asteriskExten "^\s*\zssame\s*=>\?\s*\ze" nextgroup=asteriskPriority
-syn match asteriskExten "^\s*\(register\|channel\|ignorepat\|include\|\(no\)\?load\)\s*=>\?"
+syn match asteriskExten "^\s*\(register\|channel\|ignorepat\|include\|l\?e\?switch\|\(no\)\?load\)\s*=>\?"
syn match asteriskPattern "_\(\[[[:alnum:]#*\-]\+\]\|[[:alnum:]#*]\)*\.\?" contained
syn match asteriskPattern "[^A-Za-z0-9,]\zs[[:alnum:]#*]\+\ze" contained
syn match asteriskApp ",\zs[a-zA-Z]\+\ze$"
@@ -41,7 +41,7 @@ syn match asteriskVarLen "\${_\{0,2}[[:alpha:]][[:alnum:]_]*(.*)}
syn match asteriskVarLen "(\zs[[:alpha:]][[:alnum:]_]*(.\{-})\ze=" contains=asteriskVar,asteriskVarLen,asteriskExp
syn match asteriskExp "\$\[.\{-}\]" contains=asteriskVar,asteriskVarLen,asteriskExp
syn match asteriskCodecsPermit "^\s*\(allow\|disallow\)\s*=\s*.*$" contains=asteriskCodecs
-syn match asteriskCodecs "\(g723\|gsm\|ulaw\|alaw\|g726\|adpcm\|slin\|lpc10\|g729\|speex\|ilbc\|all\s*$\)"
+syn match asteriskCodecs "\(vp9\|vp8\|h264\|h263p\|h263\|h261\|jpeg\|opus\|g722\|g723\|gsm\|ulaw\|alaw\|g719\|g726\|g726aal2\|siren7\|siren14\|adpcm\|slin\|lpc10\|g729\|speex\|ilbc\|wav\|all\s*$\)"
syn match asteriskError "^\(type\|auth\|permit\|deny\|bindaddr\|host\)\s*=.*$"
syn match asteriskType "^\zstype=\ze\<\(peer\|user\|friend\)\>$" contains=asteriskTypeType
syn match asteriskTypeType "\<\(peer\|user\|friend\)\>" contained
diff --git a/syntax/cabal-2.vim b/syntax/cabal-2.vim
index c4ef829f..e297a9bc 100644
--- a/syntax/cabal-2.vim
+++ b/syntax/cabal-2.vim
@@ -6,7 +6,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cabal') == -1
" Maintainer: Marcin Szamotulski <profunctor@pm.me>
" Previous Maintainer: Vincent Berthoux <twinside@gmail.com>
" File Types: .cabal
-" Last Change: 15 May 2018
+" Last Change: 3 Oct 2020
" v1.5: Incorporated changes from
" https://github.com/sdiehl/haskell-vim-proto/blob/master/vim/syntax/cabal.vim
" Use `syn keyword` instead of `syn match`.
@@ -64,11 +64,12 @@ syn keyword cabalCategory contained
\ source-repository
\ flag
\ custom-setup
+ \ common
syn match cabalCategoryTitle contained /[^{]*\ze{\?/
syn match cabalCategoryRegion
\ contains=cabalCategory,cabalCategoryTitle
\ nextgroup=cabalCategory skipwhite
- \ /^\c\s*\(contained\|executable\|library\|benchmark\|test-suite\|source-repository\|flag\|custom-setup\)\+\s*\%(.*$\|$\)/
+ \ /^\c\s*\(contained\|executable\|library\|benchmark\|test-suite\|source-repository\|flag\|custom-setup\|common\)\+\s*\%(.*$\|$\)/
syn keyword cabalTruth true false
" cabalStatementRegion which limits the scope of cabalStatement keywords, this
@@ -78,6 +79,7 @@ syn keyword cabalStatement contained containedin=cabalStatementRegion
\ default-language
\ default-extensions
\ author
+ \ autogen-modules
\ branch
\ bug-reports
\ build-depends
@@ -112,6 +114,7 @@ syn keyword cabalStatement contained containedin=cabalStatementRegion
\ homepage
\ hs-source-dirs
\ hugs-options
+ \ import
\ include-dirs
\ includes
\ install-includes
diff --git a/syntax/crystal.vim b/syntax/crystal.vim
index fb1b200f..147bd050 100644
--- a/syntax/crystal.vim
+++ b/syntax/crystal.vim
@@ -141,7 +141,7 @@ syn match crystalFloat "\<\d[[:digit:]_]*\%(\.\d[[:digit:]_]*\)\=\%([eE][-+]
syn match crystalInvalidInteger "\%(\.\|[eE][+-]\)\@2<!\<0\d\+\>" contained containedin=crystalFloat,crystalInteger display
" Identifiers
-syn match crystalLocalVariableOrMethod "\<[_[:lower:]][_[:alnum:]]*[?!=]\=" contains=NONE display transparent
+syn match crystalLocalVariableOrMethod "\<[_[:lower:]][_[:alnum:]]*[?!=]\=" contains=NONE display
syn match crystalBlockArgument "&[_[:lower:]][_[:alnum:]]" contains=NONE display transparent
syn match crystalTypeName "\%(\%([.@$]\@1<!\.\)\@1<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained
diff --git a/syntax/css.vim b/syntax/css.vim
index 8cac40ec..df65677d 100644
--- a/syntax/css.vim
+++ b/syntax/css.vim
@@ -651,7 +651,7 @@ endif
let &cpo = s:cpo_save
unlet s:cpo_save
-" vim: ts=8
+" vim: ts=8
endif
diff --git a/syntax/fortran.vim b/syntax/fortran.vim
index 4fddcef3..96b0fbe8 100644
--- a/syntax/fortran.vim
+++ b/syntax/fortran.vim
@@ -2,19 +2,18 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fortran') == -1
" Vim syntax file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
-" Version: 102
-" Last Change: 2020 Apr 20
-" Patched By: Eisuke Kawashima
+" Version: (v103) 2020 October 07
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-syntax from Vim
" Credits:
-" Version 0.1 for Fortran 95 was created (April 2000) by Ajit Thakkar from the
-" Fortran 77 syntax file by Mario Eusebio and Preben Guldberg.
+" Version 0.1 for Fortran 95 was created in April 2000 by Ajit Thakkar from an
+" older Fortran 77 syntax file by Mario Eusebio and Preben Guldberg.
" Since then, useful suggestions and contributions have been made, in order, by:
" Andrej Panjkov, Bram Moolenaar, Thomas Olsen, Michael Sternberg, Christian Reile,
" Walter Dieudonné, Alexander Wagner, Roman Bertle, Charles Rendleman,
" Andrew Griffiths, Joe Krahn, Hendrik Merx, Matt Thompson, Jan Hermann,
-" Stefano Zaghi, Vishnu V. Krishnan, Judicaël Grasset, and Takuma Yoshida
+" Stefano Zaghi, Vishnu V. Krishnan, Judicaël Grasset, Takuma Yoshida,
+" Eisuke Kawashima, and André Chalella.`
if exists("b:current_syntax")
finish
@@ -104,6 +103,8 @@ syn match fortranUnitHeader "\<end\>"
syn match fortranType "\<character\>"
syn match fortranType "\<complex\>"
syn match fortranType "\<integer\>"
+syn match fortranType "\<real\>"
+syn match fortranType "\<logical\>"
syn keyword fortranType intrinsic
syn match fortranType "\<implicit\>"
syn keyword fortranStructure dimension
@@ -151,11 +152,9 @@ syn keyword fortranExtraIntrinsic algama cdabs cdcos cdexp cdlog cdsin cdsqrt cq
syn keyword fortranIntrinsic abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh
syn match fortranIntrinsic "\<len\s*[(,]"me=s+3
syn match fortranIntrinsic "\<real\s*("me=s+4
-syn match fortranType "\<implicit\s\+real"
-syn match fortranType "^\s*real\>"
syn match fortranIntrinsic "\<logical\s*("me=s+7
-syn match fortranType "\<implicit\s\+logical"
-syn match fortranType "^\s*logical\>"
+syn match fortranType "\<implicit\s\+real\>"
+syn match fortranType "\<implicit\s\+logical\>"
"Numbers of various sorts
" Integers
@@ -170,6 +169,12 @@ syn match fortranFloatIll display "\<\d\+\.\([deq][-+]\=\d\+\)\=\(_\a\w*\)\=\>"
syn match fortranFloatIll display "\<\d\+\.\d\+\([dq][-+]\=\d\+\)\=\(_\a\w*\)\=\>"
" floating point number
syn match fortranFloat display "\<\d\+\.\d\+\(e[-+]\=\d\+\)\=\(_\a\w*\)\=\>"
+" binary number
+syn match fortranBinary display "b["'][01]\+["']"
+" octal number
+syn match fortranOctal display "o["'][0-7]\+["']"
+" hexadecimal number
+syn match fortranHex display "z["'][0-9A-F]\+["']"
" Numbers in formats
syn match fortranFormatSpec display "\d*f\d\+\.\d\+"
syn match fortranFormatSpec display "\d*e[sn]\=\d\+\.\d\+\(e\d+\>\)\="
@@ -217,7 +222,6 @@ syn match fortranUnitHeader "\<submodule\>"
syn keyword fortranUnitHeader use only contains
syn keyword fortranUnitHeader result operator assignment
syn match fortranUnitHeader "\<interface\>"
-syn match fortranUnitHeader "\<recursive\>"
syn keyword fortranKeyword allocate deallocate nullify cycle exit
syn match fortranConditional "\<select\>"
syn keyword fortranConditional case default where elsewhere
@@ -276,6 +280,7 @@ syn keyword fortranIntrinsic null cpu_time
syn match fortranType "\<elemental\>"
syn match fortranType "\<pure\>"
syn match fortranType "\<impure\>"
+syn match fortranType "\<recursive\>"
if exists("fortran_more_precise")
syn match fortranConstructName "\(\<end\s*forall\s\+\)\@15<=\a\w*\>"
endif
@@ -455,6 +460,9 @@ hi def link fortranTodo Todo
hi def link fortranContinueMark Special
hi def link fortranString String
hi def link fortranNumber Number
+hi def link fortranBinary Number
+hi def link fortranOctal Number
+hi def link fortranHex Number
hi def link fortranOperator Operator
hi def link fortranBoolean Boolean
hi def link fortranLabelError Error
diff --git a/syntax/julia.vim b/syntax/julia.vim
index be4f9680..c2f36b7e 100644
--- a/syntax/julia.vim
+++ b/syntax/julia.vim
@@ -76,7 +76,7 @@ syntax cluster juliaExpressions contains=@juliaParItems,@juliaStringItems,@juli
syntax cluster juliaExprsPrintf contains=@juliaExpressions,@juliaPrintfItems
syntax cluster juliaParItems contains=juliaParBlock,juliaSqBraIdxBlock,juliaSqBraBlock,juliaCurBraBlock,juliaQuotedParBlock,juliaQuotedQMarkPar
-syntax cluster juliaKeywordItems contains=juliaKeyword,juliaInfixKeyword,juliaRepKeyword,juliaTypedef
+syntax cluster juliaKeywordItems contains=juliaKeyword,juliaImportLine,juliaInfixKeyword,juliaRepKeyword
syntax cluster juliaBlocksItems contains=juliaConditionalBlock,juliaWhileBlock,juliaForBlock,juliaBeginBlock,juliaFunctionBlock,juliaMacroBlock,juliaQuoteBlock,juliaTypeBlock,juliaImmutableBlock,juliaExceptionBlock,juliaLetBlock,juliaDoBlock,juliaModuleBlock,juliaStructBlock,juliaMutableStructBlock,juliaAbstractBlock,juliaPrimitiveBlock
syntax cluster juliaTypesItems contains=juliaBaseTypeBasic,juliaBaseTypeNum,juliaBaseTypeC,juliaBaseTypeError,juliaBaseTypeIter,juliaBaseTypeString,juliaBaseTypeArray,juliaBaseTypeDict,juliaBaseTypeSet,juliaBaseTypeIO,juliaBaseTypeProcess,juliaBaseTypeRange,juliaBaseTypeRegex,juliaBaseTypeFact,juliaBaseTypeFact,juliaBaseTypeSort,juliaBaseTypeRound,juliaBaseTypeSpecial,juliaBaseTypeRandom,juliaBaseTypeDisplay,juliaBaseTypeTime,juliaBaseTypeOther
@@ -126,8 +126,14 @@ syntax region juliaSqBraIdxBlock matchgroup=juliaParDelim start="\[" end="\]" c
exec 'syntax region juliaSqBraBlock matchgroup=juliaParDelim start="\%(^\|\s\|' . s:operators . '\)\@'.s:d(3).'<=\[" end="\]" contains=@juliaExpressions,juliaComprehensionFor,juliaSymbolS,juliaQuotedParBlockS,juliaQuotedQMarkParS'
syntax region juliaCurBraBlock matchgroup=juliaParDelim start="{" end="}" contains=@juliaExpressions
-exec 'syntax match juliaKeyword display "'.s:nodot.'\<\%(return\|local\|global\|import\%(all\)\?\|export\|using\|const\|where\)\>"'
+exec 'syntax match juliaKeyword display "'.s:nodot.'\<\%(return\|local\|global\|const\|where\)\>"'
syntax match juliaInfixKeyword display "\%(=\s*\)\@<!\<\%(in\|isa\)\>\S\@!\%(\s*=\)\@!"
+
+" The import/export/using keywords introduce a sort of special parsing
+" environment with its own rules
+exec 'syntax region juliaImportLine matchgroup=juliaKeyword excludenl start="'.s:nodot.'\<\%(import\|using\|export\)\>" skip="\%(\%(\<\%(import\|using\|export\)\>\)\|^\)\@'.s:d(6).'<=$" end="$" end="\%([])}]\)\@=" contains=@juliaExpressions,juliaAsKeyword,@juliaContinuationItems,juliaMacroName'
+syntax match juliaAsKeyword display contained "\<as\>"
+
exec 'syntax match juliaRepKeyword display "'.s:nodot.'\<\%(break\|continue\)\>"'
exec 'syntax region juliaConditionalBlock matchgroup=juliaConditional start="'.s:nodot.'\<if\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions,juliaConditionalEIBlock,juliaConditionalEBlock fold'
exec 'syntax region juliaConditionalEIBlock matchgroup=juliaConditional transparent contained start="'.s:nodot.'\<elseif\>" end="'.s:nodot.'\<\%(end\|else\|elseif\)\>"me=s-1 contains=@juliaExpressions,juliaConditionalEIBlock,juliaConditionalEBlock'
@@ -139,17 +145,16 @@ exec 'syntax region juliaFunctionBlock matchgroup=juliaBlKeyword start="'.s:nod
exec 'syntax region juliaMacroBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<macro\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaQuoteBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<quote\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaStructBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<struct\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
-exec 'syntax region juliaMutableStructBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<mutable struct\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
+exec 'syntax region juliaMutableStructBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<mutable\s\+struct\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaLetBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<let\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaDoBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<do\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaModuleBlock matchgroup=juliaBlKeyword start="\%(\%(\.\s*\)\@'.s:d(6).'<!\|\%(@\s*\.\s*\)\@'.s:d(6).'<=\)\<\%(bare\)\?module\>" end="\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaExceptionBlock matchgroup=juliaException start="'.s:nodot.'\<try\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions,juliaCatchBlock,juliaFinallyBlock fold'
exec 'syntax region juliaCatchBlock matchgroup=juliaException transparent contained start="'.s:nodot.'\<catch\>" end="'.s:nodot.'\<end\>"me=s-1 contains=@juliaExpressions,juliaFinallyBlock'
exec 'syntax region juliaFinallyBlock matchgroup=juliaException transparent contained start="'.s:nodot.'\<finally\>" end="'.s:nodot.'\<end\>"me=s-1 contains=@juliaExpressions'
-exec 'syntax match juliaTypedef "'.s:nodot.'\<\%(abstract\|typealias\|bitstype\)\>"'
" AbstractBlock needs to come after to take precedence
-exec 'syntax region juliaAbstractBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<abstract type\>" end="'.s:nodot.'\<end\>" fold contains=@juliaExpressions'
-exec 'syntax region juliaPrimitiveBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<primitive type\>" end="'.s:nodot.'\<end\>" fold contains=@juliaExpressions'
+exec 'syntax region juliaAbstractBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<abstract\s\+type\>" end="'.s:nodot.'\<end\>" fold contains=@juliaExpressions'
+exec 'syntax region juliaPrimitiveBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<primitive\s\+type\>" end="'.s:nodot.'\<end\>" fold contains=@juliaExpressions'
exec 'syntax region juliaComprehensionFor matchgroup=juliaComprehensionFor transparent contained start="\%([^[:space:],;:({[]\_s*\)\@'.s:d(80).'<=\<for\>" end="\ze[]);]" contains=@juliaExpressions,juliaComprehensionIf,juliaComprehensionFor'
exec 'syntax match juliaComprehensionIf contained "'.s:nodot.'\<if\>"'
@@ -275,7 +280,7 @@ syntax region juliatextString matchgroup=juliaStringDelim start=+\<text\z("\("
syntax region juliahtmlString matchgroup=juliaStringDelim start=+\<html\z("\(""\)\?\)+ skip=+\%(\\\\\)*\\"+ end=+\z1+ contains=@juliaSpecialCharsRaw
syntax region juliaint128String matchgroup=juliaStringDelim start=+\<u\?int128\z("\(""\)\?\)+ skip=+\%(\\\\\)*\\"+ end=+\z1+ contains=@juliaSpecialCharsRaw
-syntax region juliaDocString matchgroup=juliaDocStringDelim start=+^"""+ skip=+\%(\\\\\)*\\"+ end=+"""+ contains=@juliaStringVars,@juliaSpecialChars,@juliaSpellcheckDocStrings
+syntax region juliaDocString matchgroup=juliaDocStringDelim fold start=+^"""+ skip=+\%(\\\\\)*\\"+ end=+"""+ contains=@juliaStringVars,@juliaSpecialChars,@juliaSpellcheckDocStrings
exec 'syntax region juliaPrintfMacro contained transparent start="@s\?printf(" end=")\@'.s:d(1).'<=" contains=juliaMacro,juliaPrintfParBlock'
syntax region juliaPrintfMacro contained transparent start="@s\?printf\s\+" end="\ze\%([])};#]\|$\|\<for\>\)" contains=@juliaExprsPrintf,juliaMacro,juliaSymbolS,juliaQuotedParBlockS
@@ -333,13 +338,25 @@ exec 'syntax region juliaQuotedParBlock matchgroup=juliaQParDelim start="' . s
exec 'syntax match juliaQuotedQMarkPar "' . s:quoting_colon . '(\s*?\s*)" contains=juliaQuotedQMark'
exec 'syntax region juliaQuotedParBlockS matchgroup=juliaQParDelim contained start="' . s:quoting_colonS . '(" end=")" contains=@juliaExpressions'
+
" force precedence over Symbols
syntax match juliaOperator display "::"
-syntax region juliaCommentL matchgroup=juliaCommentDelim start="#\ze\%([^=]\|$\)" end="$" keepend contains=juliaTodo,@juliaSpellcheckComments
-syntax region juliaCommentM matchgroup=juliaCommentDelim start="#=\ze\%([^#]\|$\)" end="=#" contains=juliaTodo,juliaCommentM,@juliaSpellcheckComments
+syntax region juliaCommentL matchgroup=juliaCommentDelim excludenl start="#\ze\%([^=]\|$\)" end="$" contains=juliaTodo,juliaCommentM,@juliaSpellcheckComments
+syntax region juliaCommentM matchgroup=juliaCommentDelim fold start="#=\ze\%([^#]\|$\)" end="=#" contains=juliaTodo,juliaCommentM,@juliaSpellcheckComments
syntax keyword juliaTodo contained TODO FIXME XXX
+" detect an end-of-line with only whitespace or comments before it
+let s:eol = '\s*\%(\%(\%(#=\%(=#\@!\|[^=]\|\n\)\{-}=#\)\s*\)\+\)\?\%(#=\@!.*\)\?\n'
+
+" a trailing comma, or colon, or an empty line in an import/using/export
+" multi-line command. Used to recognize the as keyword, and for indentation
+" (this needs to take precedence over normal commas and colons, and comments)
+syntax cluster juliaContinuationItems contains=juliaContinuationComma,juliaContinuationColon,juliaContinuationNone
+exec 'syntax region juliaContinuationComma matchgroup=juliaComma contained start=",\ze'.s:eol.'" end="\n\+\ze." contains=@juliaCommentItems'
+exec 'syntax region juliaContinuationColon matchgroup=juliaColon contained start=":\ze'.s:eol.'" end="\n\+\ze." contains=@juliaCommentItems'
+exec 'syntax region juliaContinuationNone matchgroup=NONE contained start="\%(\<\%(import\|using\|export\)\>\|^\)\@'.s:d(6).'<=\ze'.s:eol.'" end="\n\+\ze." contains=@juliaCommentItems,juliaAsKeyword'
+exec 'syntax match juliaMacroName "@' . s:idregex . '\%(\.' . s:idregex . '\)*"'
" the following are disabled by default, but
" can be enabled by entering e.g.
@@ -350,15 +367,17 @@ hi def link juliaComma juliaNone
hi def link juliaColon juliaOperator
+hi def link juliaMacroName juliaMacro
+
hi def link juliaKeyword Keyword
hi def link juliaInfixKeyword Keyword
+hi def link juliaAsKeyword Keyword
hi def link juliaRepKeyword Keyword
hi def link juliaBlKeyword Keyword
hi def link juliaConditional Conditional
hi def link juliaRepeat Repeat
hi def link juliaException Exception
-hi def link juliaTypedef Keyword
hi def link juliaOuter Keyword
hi def link juliaBaseTypeBasic Type
hi def link juliaBaseTypeNum Type
diff --git a/syntax/less.vim b/syntax/less.vim
index 0b0c5373..82feb454 100644
--- a/syntax/less.vim
+++ b/syntax/less.vim
@@ -4,14 +4,13 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'less') == -1
" Language: less
" Maintainer: Alessandro Vioni <jenoma@gmail.com>
" URL: https://github.com/genoma/vim-less
-" Last Change: 2014 November 24
+" Last Change: 2020 Sep 29
if exists("b:current_syntax")
finish
endif
runtime! syntax/css.vim
-runtime! after/syntax/css.vim
syn case ignore
diff --git a/syntax/qml.vim b/syntax/qml.vim
index 760a5dea..268c9f8e 100644
--- a/syntax/qml.vim
+++ b/syntax/qml.vim
@@ -63,7 +63,7 @@ syn keyword qmlLabel case default
syn keyword qmlException try catch finally throw
syn keyword qmlMessage alert confirm prompt status
syn keyword qmlGlobal self
-syn keyword qmlDeclaration property signal readonly
+syn keyword qmlDeclaration property signal component readonly required
syn keyword qmlReserved abstract boolean byte char class const debugger enum export extends final float goto implements import interface long native package pragma private protected public short static super synchronized throws transient volatile
if get(g:, 'qml_fold', 0)