A solid language pack for Vim.

Overview

vim-polyglot

build Maintenance

A collection of language packs for Vim.

One to rule them all, one to find them, one to bring them all and in the darkness bind them.

  • It won't affect your startup time, as scripts are loaded only on demand*.
  • It installs and updates 120+ times faster than the 604 packages it consists of.
  • It is also more secure (scripts loaded for every filetype are generated by vim-polyglot)
  • Best syntax and indentation support (no other features). Hand-selected language packs.
  • Automatically detects indentation (includes performance-optimized version of vim-sleuth, can be disabled)

*To be completely honest, optimized ftdetect script takes around 10ms to load.

Installation

  1. Install Pathogen, Vundle, NeoBundle, or Plug package manager for Vim.
  2. Use this repository as submodule or package.

For example when using Plug (which I recommend):

set nocompatible

call plug#begin()

Plug 'sheerun/vim-polyglot'

call plug#end()

Optionally download one of the releases and unpack it directly under ~/.vim directory.

You can also use Vim 8 built-in package manager:

git clone --depth 1 https://github.com/sheerun/vim-polyglot ~/.vim/pack/plugins/start/vim-polyglot

Language packs

On top of all language packs from vim repository, vim-polyglot includes:

  • acpiasl (Syntax highlighting for asl and dsl files)
  • ansible
  • apiblueprint (API Blueprint syntax highlighting for apib files)
  • applescript (AppleScript syntax highlighting for applescript and scpt files)
  • arduino (Processing syntax highlighting for pde and ino files)
  • asciidoc (AsciiDoc syntax highlighting for asciidoc, adoc and asc files)
  • autohotkey (AutoHotkey syntax highlighting for ahk and ahkl files)
  • blade (Blade syntax highlighting for blade and blade.php files)
  • brewfile
  • c/c++ (C++ and C syntax highlighting for cpp, c++, cc, cp, cxx and 17 more files)
  • caddyfile
  • carp (Syntax highlighting for carp files)
  • cjsx
  • clojure (Clojure syntax highlighting for clj, boot, cl2, cljc, cljs, cljs.hl, cljscm, cljx, hic and edn files)
  • cmake (CMake syntax highlighting for cmake and cmake.in files)
  • coffee-script (CoffeeScript and Literate CoffeeScript syntax highlighting for coffee, cake, cjsx, iced, coffeekup, cson, litcoffee and coffee.md files)
  • cpp-modern
  • cql (Syntax highlighting for cql files)
  • cryptol (Syntax highlighting for cry, cyl, lcry and lcyl files)
  • crystal (Crystal and HTML+ECR syntax highlighting for cr and ecr files)
  • csv (CSV syntax highlighting for csv, tsv and tab files)
  • cucumber (Gherkin syntax highlighting for feature and story files)
  • cue (Syntax highlighting for cue files)
  • dart (Dart syntax highlighting for dart and drt files)
  • dhall (Dhall syntax highlighting for dhall files)
  • dlang (D syntax highlighting for d, di, lst, dd, ddoc and sdl files)
  • docker-compose
  • elixir (Elixir and HTML+EEX syntax highlighting for ex, exs, eex, html.leex and leex files)
  • elm (Elm syntax highlighting for elm files)
  • emberscript (EmberScript syntax highlighting for em and emberscript files)
  • emblem (Syntax highlighting for emblem and em files)
  • erlang (Erlang syntax highlighting for erl, app.src, es, escript, hrl, xrl, yrl, app and yaws files)
  • fennel (Syntax highlighting for fnl files)
  • ferm (Syntax highlighting for ferm files)
  • fish (fish syntax highlighting for fish files)
  • flatbuffers (Syntax highlighting for fbs files)
  • fsharp (F# syntax highlighting for fs, fsi and fsx files)
  • gdscript (GDScript syntax highlighting for gd files)
  • git (Git Config syntax highlighting for gitconfig files)
  • gitignore
  • gleam (Syntax highlighting for gleam files)
  • glsl (GLSL syntax highlighting for glsl, fp, frag, frg, fs and 16 more files)
  • gmpl (Syntax highlighting for mod files)
  • gnuplot (Gnuplot syntax highlighting for gp, gnu, gnuplot, p, plot, plt and gpi files)
  • go (Go syntax highlighting for go and tmpl files)
  • gradle
  • graphql (GraphQL syntax highlighting for graphql, gql and graphqls files)
  • haml (Haml syntax highlighting for haml, haml.deface, hamlc and hamlbars files)
  • handlebars (Mustache and Handlebars syntax highlighting for mustache, hogan, hulk, hjs, handlebars, hbs, hdbs and hb files)
  • haproxy (HAProxy syntax highlighting)
  • haskell (Haskell syntax highlighting for hs, hs-boot, hsc, bpk and hsig files)
  • haxe (Haxe syntax highlighting for hx and hxsl files)
  • hcl (HCL syntax highlighting for hcl, nomad and workflow files)
  • helm
  • help
  • hive (HiveQL syntax highlighting for q, hql and ql files)
  • hjson (Syntax highlighting for hjson files)
  • html5
  • i3 (Syntax highlighting for i3.config and i3config files)
  • icalendar (Syntax highlighting for ics files)
  • idris2 (Syntax highlighting for idr, ipkg and lidr files)
  • idris (Idris syntax highlighting for idr and lidr files)
  • ion (Syntax highlighting for ion files)
  • javascript-sql
  • javascript (JavaScript syntax highlighting for js, bones, cjs, es, es6 and 18 more files)
  • jenkins (Syntax highlighting for jenkinsfile and Jenkinsfile files)
  • jq (JSONiq syntax highlighting for jq files)
  • json5 (JSON5 syntax highlighting for json5 files)
  • json (JSON syntax highlighting for json, avsc, geojson, gltf, har and 13 more files)
  • jsonc (Syntax highlighting for cjson and jsonc files)
  • jsonnet (Jsonnet syntax highlighting for jsonnet and libsonnet files)
  • jst (EJS syntax highlighting for ejs, ect and jst files)
  • jsx (Syntax highlighting for jsx files)
  • julia (Julia syntax highlighting for jl files)
  • kotlin (Kotlin syntax highlighting for kt, ktm and kts files)
  • ledger (Syntax highlighting for ldg, ledger and journal files)
  • lilypond (LilyPond syntax highlighting for ly and ily files)
  • livescript (LiveScript syntax highlighting for ls files)
  • llvm (LLVM syntax highlighting for ll and td files)
  • log (Syntax highlighting for log and LOG files)
  • lua (Lua syntax highlighting for lua, fcgi, nse, p8, rbxs, rockspec and wlua files)
  • mako (Mako syntax highlighting for mako and mao files)
  • markdown (Markdown syntax highlighting for md, markdown, mdown, mdwn, mkd, mkdn, mkdown, ronn, scd and workbook files)
  • mathematica (Mathematica syntax highlighting for mathematica, cdf, m, ma, mt and 6 more files)
  • mdx (Syntax highlighting for mdx files)
  • meson (Meson syntax highlighting for wrap files)
  • mint (Syntax highlighting for mint files)
  • moonscript (MoonScript syntax highlighting for moon files)
  • nginx (Nginx syntax highlighting for nginx, nginxconf and vhost files)
  • nim (Nim syntax highlighting for nim, nim.cfg, nimble, nimrod and nims files)
  • nix (Nix syntax highlighting for nix files)
  • objc (Objective-C syntax highlighting for m and h files)
  • ocaml (OCaml syntax highlighting for ml, eliom, eliomi, ml4, mli and 13 more files)
  • octave (Syntax highlighting for oct and m files)
  • odin (Odin syntax highlighting for odin files)
  • opencl (OpenCL syntax highlighting for cl and opencl files)
  • perl (Perl syntax highlighting for pl, al, cgi, fcgi, perl and 12 more files)
  • pest (Syntax highlighting for pest files)
  • pgsql (PLpgSQL syntax highlighting for pgsql files)
  • php (PHP syntax highlighting for php, aw, ctp, fcgi, inc and 7 more files)
  • plantuml (PlantUML syntax highlighting for puml, iuml, plantuml, uml and pu files)
  • pony (Pony syntax highlighting for pony files)
  • powershell (PowerShell syntax highlighting for ps1, psd1, psm1, pssc and ps1xml files)
  • protobuf (Protocol Buffer syntax highlighting for proto files)
  • pug (Pug syntax highlighting for jade and pug files)
  • puppet (Puppet syntax highlighting for pp and epp files)
  • purescript (PureScript syntax highlighting for purs files)
  • python-compiler
  • python-indent
  • python (Python syntax highlighting for py, cgi, fcgi, gyp, gypi and 14 more files)
  • qmake (QMake syntax highlighting for pro and pri files)
  • qml (QML syntax highlighting for qml and qbs files)
  • r-lang (R syntax highlighting for r, rsx, s, S and rd files)
  • racket (Racket syntax highlighting for rkt, rktd, rktl and scrbl files)
  • ragel (Ragel syntax highlighting for rl files)
  • raku (Raku syntax highlighting for 6pl, 6pm, nqp, p6, p6l and 12 more files)
  • raml (RAML syntax highlighting for raml files)
  • razor (HTML+Razor syntax highlighting for cshtml and razor files)
  • reason (Reason syntax highlighting for re and rei files)
  • requirements (Syntax highlighting for pip files)
  • rspec
  • rst (reStructuredText syntax highlighting for rst, rest, rest.txt and rst.txt files)
  • ruby (Ruby and HTML+ERB syntax highlighting for rb, builder, eye, fcgi, gemspec and 26 more files)
  • rust (Rust syntax highlighting for rs and rs.in files)
  • scala (Scala syntax highlighting for scala, kojo and sc files)
  • scss (SCSS syntax highlighting for scss files)
  • sh (Shell syntax highlighting for sh, bash, bats, cgi, command and 7 more files)
  • slim (Slim syntax highlighting for slim files)
  • slime (Syntax highlighting for slime files)
  • smt2 (SMT syntax highlighting for smt2 and smt files)
  • solidity (Solidity syntax highlighting for sol files)
  • stylus (Stylus syntax highlighting for styl and stylus files)
  • svelte (Svelte syntax highlighting for svelte files)
  • svg-indent
  • svg (SVG syntax highlighting for svg files)
  • sway
  • swift (Swift syntax highlighting for swift files)
  • sxhkd (Syntax highlighting for sxhkdrc files)
  • systemd (Syntax highlighting for automount, dnssd, link, mount, netdev and 9 more files)
  • terraform (Syntax highlighting for tf and tfvars files)
  • textile (Textile syntax highlighting for textile files)
  • thrift (Thrift syntax highlighting for thrift files)
  • tmux
  • toml (TOML syntax highlighting for toml files)
  • tptp (Syntax highlighting for p, tptp and ax files)
  • twig (Twig syntax highlighting for twig and xml.twig files)
  • typescript (TypeScript and TSX syntax highlighting for ts and tsx files)
  • unison (Syntax highlighting for u and uu files)
  • v (V syntax highlighting for v, vv and vsh files)
  • vala (Vala syntax highlighting for vala, vapi and valadoc files)
  • vbnet (Visual Basic .NET syntax highlighting for vb and vbhtml files)
  • vcl (VCL syntax highlighting for vcl files)
  • velocity (Syntax highlighting for vm files)
  • vue (Vue syntax highlighting for vue and wpy files)
  • xdc (Syntax highlighting for xdc files)
  • xml (XML syntax highlighting for xml, adml, admx, ant, axml and 94 more files)
  • xsl (XSLT syntax highlighting for xslt and xsl files)
  • yard
  • zephir (Zephir syntax highlighting for zep files)
  • zig (Zig syntax highlighting for zir, zig and zir files)
  • zinit

Updating

You can either wait for new patch release with updates or run make by yourself.

Troubleshooting

Please make sure you have set nocompatible in your .vimrc (or use something like sheerun/vimrc)

Individual language packs can be disabled by setting g:polyglot_disabled as follows:

Please declare this variable before polyglot is loaded (at the top of .vimrc)

let g:polyglot_disabled = ['markdown']

The list of available languages to disable is shown above.

If you wish to use filetype detection by Vim Polyglot but you'd like to use your own syntax-highlighting plugin, you can append .plugin to disabled entry, like below. Disabling Vim Polyglot filetype plugin won't disable native Vim filetype plugin.

let g:polyglot_disabled = ['markdown.plugin']

Please note that disabling a language won't make in your vim startup any faster / slower (only for specific this specific filetype). All plugins are lazily loaded only when they are really needed.

Autoindent

Vim Polyglot tries to automatically detect indentation settings (just like vim-sleuth). If this feature is not working for you for some reason, please file an issue and disable it temporarily with:

let g:polyglot_disabled = ['autoindent']

Reindent

If you want to disable reindening of the current line in insert mode (see vim 'indentkeys') you can turn it off with:

autocmd BufEnter * set indentexpr=

This will not affect smart autoindenting when starting a new line.

Default settings

Vim Polyglot includes vim-sensible plugin, which is usually necessary for editing any language. This can be disabled with:

let g:polyglot_disabled = ['sensible']

No ftdetect

If you want to use vim-polyglot plugins, but not ftdetect autocommands, the you can disable it as so:

let g:polyglot_disabled = ['ftdetect']

Contributing

Language packs are periodically updated using automated scripts/build script.

Feel free to add your language to packages.yaml + heuristics.yaml, and send pull-request. You can run make test to run rough tests. And make dev for easy development.

License

See linked repositories for detailed license information. This repository is MIT-licensed.

Comments
  • Improper install of vim-polyglot. Please add 'packload' to .vimrc but vim-polyglot is not installed as opt package

    Improper install of vim-polyglot. Please add 'packload' to .vimrc but vim-polyglot is not installed as opt package

    Does this bug happen when you install plugin without vim-polyglot? No

    Describe the bug: I'm using https://github.com/k-takata/minpac to install packages & I'm installing vim-polyglot as a start package that will get loaded automatically when neovim starts not as an opt one. So I shouldn't get this message.

    To Reproduce:

    • git clone --depth 1 https://github.com/sheerun/vim-polyglot ~/.vim/pack/plugins/start/sheerun/vim-polyglot
    • open neovim
    opened by ahmedelgabri 40
  • Neovim/Vim8 support broken because of `vim9script` in `autoload/polyglot/ft.vim`

    Neovim/Vim8 support broken because of `vim9script` in `autoload/polyglot/ft.vim`

    Does this bug happen when you install plugin without vim-polyglot?

    No.

    Describe the bug:

    Changes to autoload/polyglot/ft.vim in b77c5f11070ecb2ff343aa18b4ea859e6168f16c seems to introduce a bunch of Vim 9 stuff not supported by Neovim (and never will be?). It also breaks on older versions of Vim.

    To Reproduce:

    Open a shell script, e.g. nvim foo.sh.

    opened by lithammer 28
  • C++ Folding Blocks Bug

    C++ Folding Blocks Bug

    The c++ fold syntax behaves buggy with block folds. Any block fold seems to end on the last fold found in the file. E.g:

    func1()
    { //<--- fold starts here
    
    }
    
    func2()
    {
    
    }//<---- fold ends here
    

    This error does not occur is C files (only C++). Also this bug seems to only apply to a newly written c++ file when it has been written to for the first time which seems to imply that the error happens during some parsing stage when the file buffer is newly loaded. Also comment folds have no affect on this bug (as far as I've observed)

    opened by theNerd247 26
  • set noswapfile

    set noswapfile

    Describe the bug: In commit 739102e06df4fe5bca752d1163b954603912bc98 swap files had been disabled. I don't think that silently disabling swap files by default is a good idea and I learned about it the hard way.

    To Reproduce:

    :set swapfile?
    noswapfile
    

    Workaround:

    let g:polyglot_disabled = ['sensible']
    
    opened by magras 24
  • JSX detection no longer working after upgrade

    JSX detection no longer working after upgrade

    I upgraded this plugin to the latest version yesterday, and since then JSX syntax highlighting is nolonger working. I had a look through previous issues and found https://github.com/sheerun/vim-polyglot/issues/460, which I initially presumed was the same issue. However my issue related to vim and not neovim, and checking out the plugin at the commit for the fix here: https://github.com/sheerun/vim-polyglot/commit/16774887a3fe26a09326585f871748ddf158905e gets highlighting to work again.

    I traced through subsequent commits, and pinpointed this commit which is the point where jsx highlighting stops working again:

    https://github.com/sheerun/vim-polyglot/commit/cdb8e233c2e01c835ec78ae453c9793ade224309

    My workaround for the time being will be to run this plugin at the commit previous to this, by adding this command to .vimrc:

    silent! let g:plugs['vim-polyglot'].commit = 'ff282f610f871114fc5fa51f8c43d8b371aebbaf'
    
    opened by danbroooks 23
  • g:polyglot_disabled = ['autoindent'] doesn't allow vim-sleuth to load

    g:polyglot_disabled = ['autoindent'] doesn't allow vim-sleuth to load

    Does this bug happen when you install plugin without vim-polyglot? No

    Describe the bug: For reasons unrelated to this bug I would like to disable the polyglot version of the indent detection and continue using vim-sleuth. Now, I can only speculate, but I assume, by default, vim-polyglot somehow detects that vim-sleuth is loaded and unloads it, since no vim-sleuth commands are available starting from vim-polyglot v4.8.0?

    Is it possible to make it so g:polyglot_disabled = ['autoindent'] also lets vim-sleuth be loaded normally?

    To Reproduce:

    • Have vim-sleuth and vim-polyglot (version v4.8.0+) installed.
    • Have g:polyglot_disabled = ['autoindent'] applied
    • Verify :Sleuth is not found
    opened by andrey-bolduzev 21
  • Javascript indentation

    Javascript indentation

    Does this bug happen when you install plugin without vim-polyglot? No Describe the bug: When I add vim-polyglot plugin, the indentation for javascript blocks stops to work. To Reproduce:

      componentWillMount () {
        const { session, dispatch, randomMethod } = this.props .  <--- place cursor anywhere on this line and press O (for entering the insertation mode)
        randomMethod(session.token)
      }
    
    

    desired behaviour:

      componentWillMount () {
        const { session, dispatch, randomMethod } = this.props
        | <-- cursor is placed here
        randomMethod(session.token)
      }
    
    

    actual behavour:

      componentWillMount () {
        const { session, dispatch, randomMethod } = this.props
    | <-- cursor is placed here
        randomMethod(session.token)
      }
    
    

    part of my ~/.vimrc with plugins and stuff related with indent etc.:

    
    ...
    set wrap
    set textwidth=79
    set tabstop=2
    set expandtab
    set shiftwidth=2
    set autoindent
    set smartindent
    
    filetype on
    filetype plugin on
    filetype indent on
    
    ...
    " Unmanaged plugin (manually installed and updated)
    Plug 'pangloss/vim-javascript'
    Plug 'mxw/vim-jsx'
    Plug 'vim-airline/vim-airline'
    Plug 'justinmk/vim-sneak'
    Plug 'tpope/vim-surround'
    Plug 'dyng/ctrlsf.vim'
    Plug 'tpope/vim-fugitive'
    Plug 'morhetz/gruvbox'
    Plug 'w0rp/ale'
    Plug '/usr/local/opt/fzf'
    Plug 'junegunn/fzf.vim'
    Plug 'unblevable/quick-scope'
    "Plug 'sheerun/vim-polyglot'
    Plug 'jiangmiao/auto-pairs'
    Plug 'mileszs/ack.vim'
    Plug 'scrooloose/nerdtree'
    Plug 'scrooloose/nerdcommenter'
    Plug 'mhinz/vim-startify'
    Plug 'ntpeters/vim-better-whitespace'
    Plug 'Yggdroot/indentLine'
    Plug 'tpope/vim-cucumber'
    Plug 'tpope/vim-rhubarb'
    Plug 'ludovicchabant/vim-gutentags'
    Plug 'Valloric/YouCompleteMe'
    Plug 'docunext/closetag.vim'
    Plug 'mattn/emmet-vim'
    Plug 'vim-scripts/argtextobj.vim'
    Plug 'vim-scripts/SearchComplete'
    Plug 'tpope/vim-endwise'
    "  Initialize plugin system
    call plug#end()
    

    Edit: Apparently this issue only exists in Vim 8.1, switching to Neovim resolves the problem.

    Feedback required 
    opened by nidzola 17
  • Custom C/C++ syntax broken after commit cbde2571d4f79770ac552fe75440de72893bc73a

    Custom C/C++ syntax broken after commit cbde2571d4f79770ac552fe75440de72893bc73a

    I use a custom function to highlight C/C++ objects and it was working perfectly before the aforementioned commit: 'Respect symlinks for resolving vim-polyglot as fallback, closes #601'

    The problem seems to be that the custom .vim/after/syntax/c.vim is the only file read , where before, the custom changes were applied on top of bfrg/vim-cpp-modern/after/syntax/c.vim

    Before:

    Screen Shot 2020-10-25 at 12 22 54

    After: Screen Shot 2020-10-25 at 12 22 30

    opened by kostiskalkounos 16
  • Improve filetype detection heuristics (e.g. objectivec vs mathematica)

    Improve filetype detection heuristics (e.g. objectivec vs mathematica)

    Does this bug happen when you install plugin without vim-polyglot?

    No.

    Describe the bug:

    Setting g:filetype_m = 'objc' gets overridden by vim-polyglot on line 391 of ftdetect/polyglot.vim.

    Likewise, setting au BufRead,BufNewFile *.m set filetype=objc within ftdetect/objc.vim or equivalents in $VIMRUNTIME/filetype.vim get overridden.

    To Reproduce:

    Put the configurations described above. Load without vim-polyglot and observe the filetype is set to objc. With vim-polyglot, observe the filetype is set to mma.

    opened by chipsenkbeil 16
  • Make syntax concealing optional for JSON + Markdown.

    Make syntax concealing optional for JSON + Markdown.

    Allow users to toggle concealing off for JSON and Markdown using the following new options:

    " turn off JSON conceal *mirrors vim-json's setting
    let g:vim_json_syntax_conceal = 0
    
    " turn off Markdown conceal
    let g:vim_markdown_syntax_conceal = 0
    

    Default is on, so should have the same expected behavior OOB. I can add more options for other languages, but these were the 2 that affected me personally.

    opened by robhurring 16
  • Polyglot overwrite tab size for Fortran fixed format

    Polyglot overwrite tab size for Fortran fixed format

    Does this bug happen when you install plugin without vim-polyglot? no

    Describe the bug: Polyglot seems to overwrite the setting for tab size in neovim while editing fortran77 (fixed format) code. With polyglot enabled the tab size for fortran77 is 6. Removing the entire polyglot plugin fixed the issue. I tried disabling polyglot just for fortran with the following

    let g:polyglot_disabled = ['fortran']

    but it does not fixed the issue.

    To Reproduce: Set tab size other than 6.

    set tabstop=2

    Install and enable polyglot, then try using tab in a fortran77 file.

    opened by rapid-tap 15
  • V is not detected properly

    V is not detected properly

    Neovim information
    $ nvim --version
    NVIM v0.8.0-v0.8.0
    Build type: RelWithDebInfo
    LuaJIT 2.1.0-beta3
    Compilation: /usr/lib64/ccache/cc -DNVIM_TS_HAS_SET_MATCH_LIMIT -DNVIM_TS_HAS_SET_ALLOCATOR -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wdouble-promotion -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/home/thomas/.local/builds/neovim/build/cmake.config -I/home/thomas/.local/builds/neovim/src -I/home/thomas/.local/builds/neovim/.deps/usr/include -I/usr/include -I/home/thomas/.local/builds/neovim/build/src/nvim/auto -I/home/thomas/.local/builds/neovim/build/include
    Compiled by thomas@fedora-lenovo-t470
    

    Features: +acl +iconv +tui See ":help feature-compile"

    system vimrc file: "$VIM/sysinit.vim" fall-back for $VIM: "/usr/local/share/nvim"

    Run :checkhealth for more info

    Does this bug happen when you install plugin without vim-polyglot? Yes.

    Describe the bug: When using the package ollykel/v-vim directly and opening a vlang examples from the official repo, syntax highlight is working. It doesn't when I'm using vim-polyglot though. The syntax can still be activated using set syntax=vlang, which means the package is load correctly.

    To Reproduce: Uninstall vim-polyglot Install ollykel/v-vim Open a v file (such as one of the example from the official repo)

    opened by Betelgeuse1 0
  • vim-polyglot unsets b:is_bash in *.bash files

    vim-polyglot unsets b:is_bash in *.bash files

    Does this bug happen when you install plugin without vim-polyglot?

    No, it does not. This bug appears to be related to logic in vim-polyglot's autoload/polyglot/ft.vim file.

    Describe the bug:

    When vim-polyglot is installed, b:is_bash is unset in [filename].bash files. This causes the undesired behavior described in https://github.com/dense-analysis/ale/issues/3988, where ALE treats Bash files as sh files.

    To Reproduce:

    Steps to reproduce
    1. mv ~/.vim ~/.vim.bak.vim-polyglot-issue-823.$(date '+%s')
    2. git clone --depth 1 https://github.com/sheerun/vim-polyglot ~/.vim/pack/plugins/start/vim-polyglot
    3. vim example.bash
    4. On Vim's command line, run :echo b:is_bash.
    Actual results

    E121: Undefined variable: b:is_bash

    Expected results

    1

    opened by openjck 1
  • zsh syntax issues with delimiter highlighting

    zsh syntax issues with delimiter highlighting

    Does this bug happen when you install plugin without vim-polyglot? No... this is an issue with the syntax additions here for the zsh syntax. Specifically I've narrowed it down to the delimiter customizations in syntax/zsh.vim#L16. Commenting that line out fixes the issue. I don't know much about how vim syntax highlighting works so I'm not sure what the right way to fix it would be.

    Describe the bug: In some of my zsh scripts I have code that uses arithmetic using the $(( ... )) substitution. Whenever I have this and include inner parentheses to group math expressions the rest of the file ends up getting highlighted as a string.

    Screen Shot 2022-11-08 at 11 51 52 AM

    To Reproduce: The simplest case might be a .zsh file with something like this in it:

    somevar="$(( 5 - (4 * 3) ))"
    echo "everything after the above line is highlighted as a string"
    
    opened by ev0rtex 0
  • Support for asymptote

    Support for asymptote

    What is the name of this language in Linguist? asymptote

    Link to GitHub repository of Vim plugin Official Unofficial

    Is this plugin well maintained? Yes

    Is this plugin lightweight? (no advanced functionality, just indent and syntax support) Yes

    enhancement 
    opened by AvidSeeker 0
  • Support for mediawiki

    Support for mediawiki

    What is the name of this language in Linguist?

    mediawiki

    Link to GitHub repository of Vim plugin

    https://github.com/chikamichi/mediawiki.vim

    Is this plugin well maintained? Last update is from 2015, but this is expected since mediawiki syntax doesn't update.

    Is this plugin lightweight? (no advanced functionality, just indent and syntax support) yes

    enhancement 
    opened by AvidSeeker 0
Releases(v4.17.0)
  • v4.17.0(Dec 30, 2020)

    c5625ff Set shiftwidth to tabstop if greather, fixes #648 45f2f94 Add mint-language, closes #653 73c5187 Removes set incsearch which was copied from vim-sensible (#640) da18fe6 Fix neovim :Tutor filetype detection (#631) ff35c02 Restore cpoptions before recursive ftdetect read, fixes #619 (#621) 32f5e90 Do not use [0:-1] syntax, fixes #616 d96f11b Rename cpo_save variable to prevent conflicts, fixes #619 05e21a9 Add support for PEG syntax (#615) 740a608 Use nroff filetype for man pages, closes #611 ba3fe9e Fix loading when vim8 packages are used 45a7512 Preserve loading order of plugins, fixes #608 4b54ae9 Move setting default tabstop to "sensible" part of vim-polyglot

    And fixes

    Source code(tar.gz)
    Source code(zip)
  • v4.16.0(Oct 24, 2020)

    739102e Make editing same file in multiple vim instances seamless f52f6b9 Allow to override incsearch, #603 b6654c8 Fix shortcuts in plugins, fixes #566 e3609fe Fix disabling sensible settings, closes #602 7324528 Fix detecting shell filetypes, closes #603 0a2f2cc Fix old nvim, closes #592 6422a5a Count all multiplies for given indent, fixes #592 113f9b8 Respect shiftwidth if set by user or filetype plugin

    Source code(tar.gz)
    Source code(zip)
  • v4.15.1(Oct 22, 2020)

    6636144 Prevent setting expandtab by default, closes #599 2a20556 Set only softtabstop, not tabstop, fixes #600 29ec69f Set default tabstop to 2, but only if not changed

    Source code(tar.gz)
    Source code(zip)
  • v4.15.0(Oct 19, 2020)

  • v4.14.1(Oct 19, 2020)

  • v4.14.0(Oct 19, 2020)

    233a817 Add vim-sensible by default c3e8250 Allow vim-polyglot to load in non-compatible mode 88cae16 Autodetect only 2, 3, 4, or 8 space indents, fixes #592

    Source code(tar.gz)
    Source code(zip)
  • v4.13.3(Oct 16, 2020)

    3ac0dd5 Always use native vim syntax, fixes #582 e95c5f4 Check indentation with 1024 lines as fallback, fixes #588 ba11e0f Improve django detection, closes #585 c45f0b8 Make sure custom ftdetect is loaded, fixes #587 bb3de8f Fix markdown and other highlighting, #578 4bec20e Fix test and loading of filetypes, closes #577 9f4e2b6 Remove context from packages, fixes #575 619a7a8 Remove man plugin from vim, it does not work for nvim, closes #576 f084509 Fix vim 8 package manager, closes #574 c6fa4d2 Add extensions to vlang c0b866a Add graphql indentation again b4868c7 Add comments for some extensions + test d221139 Address BufWritePost error, fixes #573 94ec9c3 Do not use ++once to support older vims, fixes #7056 bff55a5 Update Vim 8 installation instructions 560024a Resolve issues with loading order, closes #571 3ad297d Fix error when editing path for shebang (#572)

    Source code(tar.gz)
    Source code(zip)
  • v4.13.0(Sep 29, 2020)

    Loading time of optimized ftdetect script is now down to 10ms! 🌵 🍰

    Also contains multiple fixes related to detecting filetypes, enjoy

    Source code(tar.gz)
    Source code(zip)
  • v4.10.2(Sep 16, 2020)

  • v4.10.1(Sep 15, 2020)

  • v4.10.0(Sep 10, 2020)

  • v4.9.2(Sep 4, 2020)

  • v4.8.0(Sep 1, 2020)

  • v4.6.0(Sep 1, 2020)

    • Allow to define heuristics in heuristics.yaml
    • Migrate all languages from vim beginning with "a"
    • Remove enhanced cpp syntax (it was too slow to load)
    • Use setf instead of set ft for setting filetype (faster)
    • Override native hauristics with au!
    • Add globbing of files for packages
    • Replace predefined dirs with extra_dirs and ignored_dirs
    • Allow to define proper order of packages with topological sort
    • Fix powershell detection
    • Lint and fix many packages.yaml issues
    Source code(tar.gz)
    Source code(zip)
  • v4.5.5(Aug 27, 2020)

  • v4.5.0(Aug 18, 2020)

    Big feature: Integrate with https://github.com/github/linguist for filetype detection. Also:

    0df1bfa Add requirements.txt support, closes #507 f7302d9 Add jq syntax, closes #502 7e38f42 Add improved sql syntax, closes #505 e521ba3 Add fennel support, closes #514 ee4f515 Add ftdetect for jsonnet 20a388c Add jsonnet support, closes #515 5670985 Add docs, fixes #501 f8cee01 Allow to set let g:python_highlight_all = 0, closes #474 c6936ae Fix dhall plugin, closes #519 a3bdbcd Fix svelte branch name, closes #522 9c3c0bc Fix rspect ftdetect, #503 8b6c06e Add detection for rspec files (#503)

    Source code(tar.gz)
    Source code(zip)
  • v4.4.3(Jun 1, 2020)

  • v4.4.1(May 20, 2020)

  • v4.4.0(May 20, 2020)

  • v4.3.0(Apr 25, 2020)

    6a15d48 Add brewfile support, closes #469 24f0581 Add rego support, closes #471 33c9484 Allow to configure python syntax, #474 55287ef Change elm provider, closes #475 d757bfd Change latex provider to luatex, closes #476 8ec73a3 Change fsharp provider, closes #477 b2ee283 Add gdscript, closes #483

    Source code(tar.gz)
    Source code(zip)
  • v4.2.0(Dec 31, 2019)

  • v4.1.3(Dec 7, 2019)

  • v4.0.0(Sep 6, 2019)

  • v3.10.0(Sep 4, 2019)

    ae18284 Disable jsx when ts or js is disabled, closes #414 556c56d Add graphql support, closes #298 fe84062 Include missing file from styledcomponents, fixes #418 8742443 Remove advanced stuff from r plugin, fixes #420 832dfec Add dhall, closes #426 933e42e Change provider for puppet, closes #424 cdd6d73 Switch fish provider, fixes #408 a48874d Update elixir filedetect, closes #421 21849c2 Add helm syntax, closes #422 3ddca5d Remove rego, fixes #415

    Source code(tar.gz)
    Source code(zip)
  • v3.9.0(Jun 8, 2019)

    fca45b2 Add rego support, closes #406 ebf9ec9 Add zig support, closes #405 9caa678 Add ion shell support, closes #404 8f2a716 Add hcl support, closes #403 5ded068 Add dlang support, closes #401 0217fb5 Add tsx provider, closes #330 5023da6 Add hive syntax, closes #396 957228c Add log syntax, closes #394 7aae831 Add tptp syntax 26c678b Change jsx/tsx provider, closes #400 af763ef Change tmux provider, closes #402 17ecfbd Add s:setf helper, fixes #399

    Source code(tar.gz)
    Source code(zip)
  • v3.8.1(Apr 23, 2019)

    9fd5c11 Remove liquid syntax, closes #384 679ccf0 Change pgsql provider, closes #391 eacf785 Add svg plugin, closes #388 83bd298 Add xdc syntax, closes #393 415261d Switch mathematica provider, closes #385

    Source code(tar.gz)
    Source code(zip)
  • v3.7.0(Mar 11, 2019)

  • v3.6.0(Mar 10, 2019)

    9d9ed14 Add ACPI ASL and SMT2 support 5005f1e Add csv plugin, closes #239 571f76e Remove rare html extensions, fixes #280 8672173 Add lilypond support, closes #278 25ed6ff Reintroduce mdx support

    Source code(tar.gz)
    Source code(zip)
  • v3.5.0(Mar 10, 2019)

    521220f Change ocaml provider, closes #320 b4cb586 Add tsx support, fixes #330 ebf81f7 Fix spelling errors, closes #334 b69fbad Add mdx support, closes #342 58f9b8c Proper casing for Dockerfile, fixes #361 1ba88cc Add gradle compiler support, closes #358 2c59360 Switch jsx provider to amadeus, closes #364 4f0bde6 Add flatbuffers support, closes #368 833b2fa Add quake support, closes #372 efa1a55 Add meson support 63922a1 Add idris support, closes #265 0cd0b7f Add reason support, closes #266 ec5884b Add jinja support, closes #269 92f779d Add groovy indent support, closes #324 edfcded Add cuesheet support, closes #366 288b0d2 Remove orgmode plugin, #360 1597b7b Change plugin guard for disabling, fixes #371

    Source code(tar.gz)
    Source code(zip)
  • v3.3.2(Feb 6, 2018)

Owner
Adam Stankiewicz
:smile: :art: :musical_score: :telescope: :coffee: :earth_africa: :heart:
Adam Stankiewicz
Emacs support for Apple's Swift programming language.

swift-mode Major-mode for Apple's Swift programming language. Installation Install swift-mode package from MELPA. To install without MELPA, download l

null 347 Dec 17, 2022
Scribe-iOS is a pack of iOS and iPadOS keyboards for language learners

Scribe-iOS is a pack of iOS and iPadOS keyboards for language learners. Features include translation (beta), verb conjugation and word annotation that give users the tools needed to communicate with confidence.

Scribe 47 Jan 4, 2023
Vim runtime files for Swift

Swift.vim Syntax and indent files for Swift If you don't have a preferred installation method check out vim-plug. Examples Syntastic Integration swift

Keith Smiley 787 Dec 1, 2022
OpenTok Text Chat Accelerator Pack enables text messages between mobile or browser-based devices.

Text Chat Accelerator Pack iOS This project is deprecated The OpenTok Text Chat Accelerator Pack for iOS project is now a part of Accelerator Core iOS

OpenTok 13 Jan 26, 2022
Use Swift to pack ambiguous image that display differently on Apple and Other devices

Aibmoe Use Swift to pack ambiguous image that display differently on Apple and O

Lakr Aream 2 Feb 3, 2022
XVim2 - Vim key-bindings for Xcode 9

XVim2 XVim2 is a Vim plugin for Xcode intending to offer a compelling Vim experience without the need to give up any Xcode features. Xcode 9 or above,

null 2.3k Jan 1, 2023
A flexible container view featuring a solid background with rounded corners.

A flexible container view featuring a solid background with rounded corners.

Tim Oliver 13 Jan 22, 2022
Simple utility to change macOS Big Sur menu bar color by appending a solid color or gradient rectangle to a wallpaper image

Change menu bar color in macOS Big Sur Simple utility to change macOS Big Sur menu bar color by appending a solid color or gradient rectangle to a wal

Igor Kulman 876 Jan 5, 2023
Implemented MVVM-C (Coordinator) architecture pattern for the project. Which is satisfying SOLID principles altogether. Protocol oriented development has been followed.

BreakingBad BreakingBad API doc Implemented MVVM-C (Coordinator) architecture pattern for the project. Which is satisfying SOLID principples altogethe

Dhruvik Rao 2 Mar 10, 2022
Repositório para estudos dos 5 princípios conhecidos como SOLID.

SOLID ?? Repositório para estudos dos 5 princípios conhecidos como SOLID. O que é SOLID? SOLID é um acrônimo dos cinco primeiros princípios da program

Rayana Prata 3 May 23, 2022
An advanced Swift (IOS Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads & images using best practices.

dog-playground-ios An advanced Swift (IOS Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads &amp; im

Amose Suwali 1 Jan 10, 2022
Localization of the application with ability to change language "on the fly" and support for plural form in any language.

L10n-swift is a simple framework that improves localization in swift app, providing cleaner syntax and in-app language switching. Overview ?? Features

Adrian Bobrowski 287 Dec 24, 2022
A repository for showcasing my knowledge of the Swift programming language, and continuing to learn the language.

Learning Swift (programming language) I know very little about programming in the Swift programming language. This document will go over all my knowle

Sean P. Myrick V19.1.7.2 2 Nov 8, 2022
A repository for showcasing my knowledge of the Objective-C++ programming language, and continuing to learn the language.

Learning Objective-C-Plus-Plus I hardly know anything about the Objective-C++ programming language. This document will go over all of my knowledge of

Sean P. Myrick V19.1.7.2 3 Nov 8, 2022
A repository for showcasing my knowledge of the Objective-C programming language, and continuing to learn the language.

Learning Objective-C I hardly know anything about the Objective-C programming language. This document will go over all of my knowledge of the Objectiv

Sean P. Myrick V19.1.7.2 3 Nov 8, 2022
Launch App in selected language, or set as Default language

app lang switcher alfred workflow Launch App in selected language, or set as Default language. Credits: This is a swift clone of AlfredWorkflow-App-La

Saiya 4 Dec 7, 2022
Explanations and samples about the Swift programming language

About Swift Contents Explanations and samples about: Swift Programming Language Swift Standard Library Target audience Developers familiar with object

Nicola Lancellotti - About 74 Dec 29, 2022
A collection useful tips for the Swift language

SwiftTips The following is a collection of tips I find to be useful when working with the Swift language. More content is available on my Twitter acco

Vincent Pradeilles 929 Dec 10, 2022
Emacs support for Apple's Swift programming language.

swift-mode Major-mode for Apple's Swift programming language. Installation Install swift-mode package from MELPA. To install without MELPA, download l

null 347 Dec 17, 2022
The Package Manager for the Swift Programming Language

Swift Package Manager Project The Swift Package Manager is a tool for managing distribution of source code, aimed at making it easy to share your code

Apple 9.1k Dec 29, 2022