Commits (38)
  • Daniel Jonsson's avatar
    Fixed spelling error · 20116323
    Daniel Jonsson authored
    - Changed "hightlight" -> "highlight"
  • Lucian Poston's avatar
    fix cCustomParen breaking PreProc · aa0e445b
    Lucian Poston authored
  • Lucian Poston's avatar
    Don't color floats as member variables · 472a96c2
    Lucian Poston authored
  • bfrg's avatar
    Added keywords from <locale> and some more C++17 · a7e38d97
    bfrg authored
    Several types from the <locale> header were missing.
    Also added scoped_lock (C++17) from the <mutex> header.
  • bfrg's avatar
    Added missing C++17 type_traits · 3aa95627
    bfrg authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/vim-go/' changes from 011dcad..674d039 · b1ba77fa
    Dustin L. Howett authored
    674d039 update CHANGELOG.md for #2025
    5fffae9 Merge pull request #1988 from fatih/gocode
    ec76e30 write the file before using gocode in module mode
    8b21b2d gocode: add support for experimantal gocode
    e0499fa Merge pull request #2029 from husainaloos/master
    9967cca Remove go-explorer from Documentation
    ad72ecc Merge pull request #2027 from phux/debugger_highlighting_doc
    5625a76 Fix debugger highlighting variable name in doc
    e2587a0 update CHANGELOG.md for #2025
    adc5838 normalize option to highlight debugger locations
    5dafa0d Merge pull request #2025 from phux/optional_debugger_highlighting
    c4fc911 Debugger: optional highlighting
    75b54e4 Merge pull request #2024 from phux/update_breakpoint_neovim
    21481e2 Debugger: compatibility with neovim
    3558d9e update CHANGELOG.md for #2014
    b908b52 Merge pull request #2014 from railsdev/neovim_support_for_statusline
    3a669f0 Add guifb and guibg to hi instead of having separate if/else
    23f9496 Merge pull request #2023 from bhcleek/fix-neovim-debug-sync-calls
    8d2a924 clear balloon_eval correctly
    94977fb fix sync calls to delve in Neovim
    b416148 update CHANGELOG.md for #2021
    aa8b134 Merge pull request #2021 from bhcleek/fix-godoc-arrow
    08993d7 don't close godoc scratch with arrow keys
    620e8ac Merge pull request #2017 from bhcleek/fix-golint-importpath
    a5a205a update golint's import path
    1c954f2 Use guibg instead of ctermbg for neovim
    2d2f9f7 Merge pull request #2015 from bhcleek/fix-debug-stop
    4e0c625 fix errors on :GoDebugStop
    7c03bf5 update CHANGELOG.md
    866a666 Merge pull request #2011 from bhcleek/win-empty-args
    bc6f1df handle empty arguments to async jobs on Windows
    79215e5 Merge pull request #2007 from bhcleek/debug-async
    d5e08f0 Merge pull request #1995 from bhcleek/gomod-syntax
    cf94f28 Merge pull request #1992 from bhcleek/delve-log-output
    11ee53d Merge pull request #1991 from bhcleek/log-job-commands
    fdac49f Merge pull request #1987 from bhcleek/raw-string-improvements
    bcab10f Merge pull request #1947 from bhcleek/disable-other-.mod-filetypes
    8af4ee9 add debugger support to Neovim
    92b360f update CHANGELOG.md for #2006
    5971612 Merge pull request #2006 from mirza-s/master
    01a5d40 preserve shellcmdflag and normalize for /bin/sh as it may contain flags not understood by /bin/sh
    737e66f use correct address of debugger
    b3364cc add stopping and waiting for jobs
    3d8e82e Merge pull request #2000 from bhcleek/neovim-warn
    d56674f warning when using unsupported version of Neovim
    ca64f58 improve raw string handling
    5ec87ee Revert "Merge pull request #1981 from dhduvall/searchpair"
    57f41a5 match gomod versions correctly
    78d5fba Merge pull request #1993 from rhysd/fix-gomod-highlight
    db4a07f fix highlighting version on gomod
    876cae8 adjust dlv flags for its new logging option
    e8825d8 log job command when g:go_debug contains 'shell-commands'
    de896a6 Merge pull request #1990 from blyoa/fix-missing-extension
    cd6411c Fix missing extension for Windows
    56e8c42 Merge pull request #1986 from bhcleek/update-readme
    01e5d18 update README to document the required version of Neovim
    d52e18e Merge pull request #1984 from fatih/install-by-name
    bb48fdc Update CHANGELOG.md
    3935121 Merge pull request #1983 from bhcleek/fix-job-cd
    389a5a0 go: install tools with their custom names
    2235869 update CHANGELOG.md for #1981
    4bbf330 Merge pull request #1981 from dhduvall/searchpair
    0f8ca76 set the job directory correctly
    8ab771c Handle indentation in the middle of a function call
    ef47577 Add some indentation tests for when we're inside matching pairs
    1656f2f update CHANGELOG.md for #1978
    3b1cc75 Merge pull request #1978 from bhcleek/go1.11
    7b2b1b1 support and test against Go 1.11
    53d36f4 Merge pull request #1974 from bhcleek/fix-goinfo
    7b8ebb3 fix issues with handling Neovim channels
    0d4eddd handle stdin io correctly in Neovim
    d66060c fix typo: spell utf-8 correctly
    7c232b8 Merge pull request #1967 from bhcleek/enable-gocode-propose-source
    1ef7d65 Merge pull request #1970 from bhcleek/async-linting
    7de5e46 Merge pull request #1971 from bhcleek/debug-async
    5b1ffa7 Merge pull request #1972 from bhcleek/remove-unneeded-nvim-checks
    2a934e6 remove unneeded nvim checks
    ca9b886 refactor debug jobs to use vim-go's async api
    e40fb14 simplify async gometalinter execution
    8df48b2 update CHANGELOG.md for #1964
    1b60128 Merge pull request #1964 from Funfun/go-decls-dir-mapping
    53b6afd Expose call of go#decl#Decls as go-decls-dir to mappings
    d212d59 default gocode to propose from source
    9254470 Update CHANGELOG.md
    e45ccaa Merge pull request #1956 from mtyurt/table-test-snippet
    3fd16ba snippet: Add table testing boilerplate snippet
    5b9058e Merge pull request #1961 from EVODelavega/fix-dispatch-nagging
    214b85a Hide nagging message when there is nothing to report
    fb173c3 Merge pull request #1954 from bhcleek/add-GoModFmt-list
    dee5fe4 add GoModFmt list type
    1b65f77 update CHANGELOG.md for #1948
    552f7b2 Merge pull request #1948 from bhcleek/homogenize-async-progress
    96e36a2 Merge pull request #1952 from bhcleek/fix-mappings
    896d187 fix mappings for go-info and go-sameids
    97235dd add ! to function declaration
    6e6abbc improve use of statustype and progress messages
    472281a jobs: improve progress echo
    5273c4f Merge pull request #1950 from bhcleek/fix-def-activate-split
    466544e def: make sure to make the declaration's window active
    491f98c Merge pull request #1946 from bhcleek/getinfo-tests
    92a5ec0 disable other other .mod filetype settings
    f13c86f add test for go#complete#GetInfo
    f7c771b Improve go.mod filetype detection (#1934)
    d72e7f9 Merge pull request #1943 from bhcleek/fix-async-job-errors
    129e305 remove redundant setting of statusline
    6675358 Echo errors when they cannot be parsed
    743762f update CHANGELOG.md for #1939
    f500fd7 Merge pull request #1939 from bhcleek/builtin-kw
    328747d add FAQ entry about customizing highlight groups
    6a439e9 Update CHANGELOG.md
    60863b8 Merge pull request #1858 from bhcleek/indent-raw-string
    aee811a Update CHANGELOG.md
    187fd63 Merge pull request #1938 from fatih/fix-import
    478418b import: fix review comment
    35cb627 Merge pull request #1940 from bhcleek/no-patch-coverage-report
    9f65ae3 do not report patch codecoverage
    25d4783 Match builtins as keywords and highlight with the Identifier group.
    ebfd80b fix typo in CHANGELOG.md
    4761b3e update CHANGELOG.mde for #1937
    0e7bd40 Merge pull request #1937 from bhcleek/gocode-guru-statuslines
    8e35e47 import: fix adding import to empty imports
    6fb9d97 Display statuslines consistently
    3975ee8 Merge pull request #1933 from bhcleek/guru-job-api
    b226cf7 Merge pull request #1936 from fatih/status-line-fixes
    46e852e cmd: fix status line updated upon completion
    2eb76d5 refactor guru jobs to use vim-go's async api
    0b21790 update CHANGELOG.md for #1926
    abbc75a update CHANGELOG.md for #1920
    4b76af3 Merge pull request #1926 from bhcleek/complete-job-api
    f464255 Update CHANGELOG.md
    c1dd611 Merge pull request #1931 from fatih/go-modules-syntax
    3b04072 Fix review comments
    3d725eb go.mod file support
    893b04c use the async api for autocompletion in Neovim
    89fd66b use vim-go's job api for autocompletion
    b6381dd update CHANGELOG.md for #1853
    dc88288 update CHANGELOG.md for #1923
    4fdc590 Merge pull request #1853 from fatih/gocode-change
    8e9e097 Merge pull request #1923 from bhcleek/update-tested-neovim
    6be5309 add option to propose from source
    a981711 restore support for proposing builtins
    90ff2c3 gocode: switch to https://github.com/mdempsky/gocode
    0aa956f update CHANGELOG.md for #1794
    d7d6a70 Merge pull request #1794 from powerman/fix-highlight-goVar
    dea6df0 Merge pull request #1922 from bhcleek/async-def-preserve-lists
    f203a22 update CHANGELOG.md for #1924
    07d5a9f Merge pull request #1924 from jtr860830/patch-1
    e47391c Update package keyify's repository location
    9ee3d41 update the supported/tested version of Neovim
    a40877e do not clear lists when jumping to definition
    e0b4df1 add a test to verify def behavior
    0b7e453 update CHANGELOG.md for #1915
    b55773c Merge pull request #1915 from bhcleek/fix-GoInfo
    1921512 restore behavior of :GoInfo when g:go_info_mode='gocode'
    04699c8 Merge pull request #1908 from fannheyward/fix-changelog-link
    4f87496 fix CHANGELOG links
    61af12d update CHANGELOG.md
    4e09001 Merge pull request #1894 from bhcleek/async-api/gorename
    f0deef0 Merge pull request #1895 from bhcleek/nvim-test-term
    f20097d Merge pull request #1899 from bhcleek/place-test-output
    a4ec917 Merge pull request #1901 from bhcleek/async-api/gometalinter
    29c54a7 Merge pull request #1905 from bhcleek/fix-get-info
    a35be47 update CHANGELOG.md for #1903
    6319d40 Merge pull request #1903 from khrt/syn-context
    7cdbf04 return an identifier description from go#complete#GetInfo
    c10654d Highlight context.Context
    8dd6513 run gometalinter async in Neovim
    8ec9b51 remove unnecessary calls in lint_test.vim
    f761265 transform Vim8 job options in go#job#Start
    b46a9e7 transform Vim8 job options in go#job#Start
    a6e62dc edit CHANGELOG.md
    7ce0b44 update CHANGELOG.md for #1900
    69bf932 Merge pull request #1900 from sleepiforest/master
    f1e4131 add missing endif
    68118b5 update vim7.4 requirements to 7.4.2009
    375e191 fix GoRun % in windows
    d597bc5 put test output within its RUN and PASS/FAIL lines
    5e26ce6 Merge pull request #1892 from idvoretskyi/patch-1
    1fd57dc restore nvim's support for running go test in a terminal
    3e686fe make :GoRename async in nvim
    5bc8a7c update GoRename to use vim-go async job api
    92ad87e remove OBE TODO
    2afad68 correct documentation for the async job complete option
    7160001 Merge pull request #1896 from fatih/update-coverage-data-file-location
    e2de265 update coverage data file location
    b3e6978 Vundle installation method added
    522360a remove duplicate function
    3d8f9d2 update CHANGELOG.md for #1889
    7d16464 Merge pull request #1889 from secade/clarify-install-instructions
    2a6b2d3 edit requirements in docs
    d1ea847 Add minimum vim version requirement to README
    2c909e7 remove CHANGELOG.md entry for PR that was reverted
    3c49cd6 update CHANGELOG.md for #1864
    8c17fc4 Merge pull request #1864 from bhcleek/unified-job-api
    40ffc87 New release v1.18
    4141695 Merge pull request #1887 from CemalUnal/typo-fix
    d66598b fix small typo
    a96b7a6 Update Changelog.md
    1debe9b Merge pull request #1882 from fatih/fix-build-tags-def
    dd20156 Update Changelog.md
    7faa479 Merge pull request #1884 from fatih/impl-improvement
    e19a3ea def: only add build tags if it's present
    b4e1297 Update Changelog.md
    948a5ef Merge pull request #1886 from dhduvall/find-guru
    514b4bb Fix guru execution to use g:go_bin_path
    80bba4c impl: add support to complete packages
    b03b330 Merge pull request #1885 from fatih/fix-travis
    b7ec1a1 travis: fix temporary vint issue
    6f9de9c Fix the ChangeLog list
    03c93b2 update CHANGELOG.md for #1878
    dc52bcc Merge pull request #1878 from sorribas/fix-decls-dir
    8d503ce update CHANGELOG.md for #1866
    31abcbd Merge pull request #1866 from Lekensteyn/fix-exec-regression
    a2f6d3d Fix GoDeclsDir for ctrlp on a directory other than '.'
    bfd4077 use autoload/go/job.vim for async go commands in Neovim
    2185741 use autoload/go/job.vim for async coverage in Neovim
    65596fc use autoload/go/job.vim for async testing in Neovim
    f661eee handle Neovim jobs in autoload/go/job.vim
    ec2e5a8 add and use go#job#Spawn
    062421f use go#job#Start for vim8 async go test jobs
    351e9ea update status when starting a job
    b4e2af7 update status in vim8 async jobs
    fc24e19 refactor vim8 job related functions
    05ba76e Fix wrong binary path for go#util#Exec
    1f589cd set working directory for Neovim jobs
    4547098 remove unused argument from go#jobcontrol#Spawn
    7353959 remove unused function
    155836d Merge pull request #1859 from bhcleek/more-build-tags
    ea7d7c1 Fix typo in docs (#1862)
    d14a50a Update CHANGELOG.md
    6544635 Merge pull request #1845 from mattn/iferr
    9e381e3 remove accidental paste
    4c586f8 update CHANGELOG.md for #1861
    8f06c05 Merge pull request #1861 from hiberabyss/master
    3a2cef1 improve quickfix and title when `go_term_enabled` is set
    3760ef4 add more build tag support
    bf955a3 do not indent second line of raw string
    f6f4aad remove shiftwidth() shim
    f7f4bec add test for indent behavior
    1b98bd8 update CHANGELOG.md for #1850
    361a375 Merge pull request #1850 from mkomitee/1839-respect-highlight-group-customizations-2
    801ecb6 Update doc
    d52d7f3 Add command :GoIfErr
    44b9914 add doc
    f140383 Merge pull request #1852 from fatih/revert-1851-gocode-change
    fef6edb Revert "gocode: switch to https://github.com/mdempsky/gocode"
    404c285 Update Changelog.md
    2b7ac90 Merge pull request #1851 from fatih/gocode-change
    2186f08 gocode: switch to https://github.com/mdempsky/gocode
    0a2fc71 Respect user debug highlight group customization
    88b22ad update CHANGELOG.md
    632ebb3 Merge pull request #1846 from bhcleek/fix-neovim-guru
    0ba635d fix guru output handling in Neovim
    674ea92 Add missing file
    1d75ee6 Add iferr
    ae30c7a fix shell joining for guru command
    099e9ea Update Changelog.md
    345a80c Fix selection for indented comments
    956909d Merge pull request #1779 from Carpetsmoker/ac
    4d7dbea Update ChangeLog
    b3a1a1c Improve performance of package comment regex (#1799)
    7ac1e62 correct CHANGELOG.md (GH-1828 -> GH-1826)
    6dfd11c update CHANGELOG.md for #1828
    452a7ac Merge pull request #1826 from yousong/fix
    1b8d099 Merge pull request #1819 from bhcleek/handle-test-compilation-errors
    afbfc37 Merge pull request #1827 from vic3lord/patch-1
    45743f7 Package name must come after subcommand
    0918c20 guru.vim: defer ImportPath check
    9c7a776 Merge pull request #1823 from bhcleek/nsf/gocode
    95c9ba1 Revert "Update Changelog.md"
    69e368f Revert "Merge pull request #1814 from rhysd/change-gocode-repo"
    4c75bae Merge pull request #1822 from blyoa/fix-go-update-binaries
    0934773 Fix flags for GoUpdateBinaries
    4494fc5 Fix flag inheritance
    e1002d8 Update Changelog.md
    78be28d Merge pull request #1814 from rhysd/change-gocode-repo
    f512ba5 Update CHANGELOG.md
    e2e06ce Merge pull request #1818 from bhcleek/fix-gocode-options
    85196e9 Update Changelog.md
    3ec99cf Merge pull request #1809 from bhcleek/fix-delve
    5ea3b1c handle multi-line compiler errors from go test
    f6c367b handle vet errors from go test
    983e185 fix gocode option string values
    765aff6 Merge pull request #1813 from hdnha11/pass-package-to-debugger
    b2af9f4 Change repository of gocode from nsf/gocode to mdempsky/gocode
    292b66c Fix missing debugger package parameter
    8445ed2 Merge pull request #1811 from mattn/fix-error
    d654b4a Fix go get flags for GoUpdateBinaries
    8733df4 tell delve how to log
    fbd3785 Fix go syntax: no goReceiverType in goVar
    7491209 Update changelog for #1790
    e68ad7c Fix gohtmltmpl syntax to show everywhere (#1790)
    7cfb890 respect g:go_fmt_fail_silently correctly (#1792)
    af32090 Merge pull request #1791 from bhcleek/performance-faq
    6da2db8 update performance FAQ
    5ea799e Merge pull request #1787 from Carpetsmoker/old
    789012c Add changelog for #1696
    6cd2269 fix missing <buffer> for debug mappings (#1696)
    41d5330 Remove old goimports -srcdir workaround and fix :GoFmtAutoSaveToggle
    3669966 Use go#config for syntax file (#1781)
    1f052a3 don't set tags on coverage when running synchronously (#1785)
    8a15648 set runtimepath and packpath correctly in scripts/run-vim (#1786)
    1049ec4 Also add ic
    0724aaa Add ./scripts/bench-syntax (#1774)
    19b9cbc Fix go#tool#PackageName()
    70bafdf Add "ac" ("a comment") text object
    8379651 Warn when running go#cmd#autowrite() without autowrite enabled (#1754)
    32ae864 Fix shell escaping for :GoDoc, :GoDef (#1771)
    434b824 Merge pull request #1773 from Carpetsmoker/debugdiag
    1611ead Merge pull request #1772 from Carpetsmoker/env
    b85c967 Fix :GoDebugStart
    b68a67a Check that the "env" key is supported in job_start
    5868b0e update to go1.10.1 (#1770)
    37fa8bc update CHANGELOG.md for #1738
    58c1ae7 Merge pull request #1738 from bhcleek/new-issue
    8ed6dc4 reorder ISSUE_TEMPLATE.md info
    9194b4f teach vim-go to create GitHub issues
    1337db4 add tabstop on err (#1761)
    ae41131 Add build tags to many commands (#1705)
    35c8e28 Use Go 1.10 in tests (#1756)
    ba11b64 Adds vim-plug post-update hook to documentation (#1711)
    cf99d2d clear build tags when :GoBuildTags is given either a literal "" or '' (#1755)
    f70d73c update CHANGELOG.md for #1734
    c4832c4 Guru PointsTo (#1751)
    57ea4f0 Merge pull request #1734 from bhcleek/handle-async-winnr-changes
    bb055ba Write buffer before running GoDebugStart (#1753)
    cdf31fc Merge pull request #1712 from bhcleek/consolidate-configs
    64daedb Fix typos in readme and docs (#1745)
    a15bbdf move bin_path to getter function
    dc0d49c move textobj_include_variable to getter function
    0c2893d move textobj_include_function_doc to getter function
    9b912d1 move gorename_prefill to getter function
    1cfbf56 move gorename_bin to getter function
    a0ad318 move play_open_browser to getter function
    92afe7b move fmt_experimental to getter function
    df622c9 move fmt_fail_silently to getter function
    e6e72dc move fmt_options to getter function
    69eaaf1 move fmt_command to getter function
    ebada03 move doc_command to getter function
    45ea553 move decls_mode to getter function
    903375d move alternate_mode to getter function
    240d1d8 move auto_type_info to getter and setter functions
    9076e68 move doc_max_height to getter function
    584b11b move asmfmt_autosave to getter and setter functions
    acb1001 move fmt_autosave to getter and setter functions
    287c706 move list_height to getter function
    3f143fe move metalinter_autosave to getter and setter functions
    f5350e9 move errcheck_bin to getter function
    5d32224 move golint_bin to getter function
    4f81b5a move metalinter_disabled to getter function
    1bbdc34 move metalinter_enabled to getter function
    c5c48a7 move metalinter_autosave_enabled to getter function
    2a00bf2 move metalinter_command to getter function
    6940b4d move template_autocreate to getter and setter functions
    6b7528e remove superfluous let statement
    93dc336 move go_addtags_transform to getter function
    3195858 move go_auto_sameids to getter and setter functions
    2dc26e9 move let go_debug_diag to setter function
    db7078d move go_debug_commands to getter function
    a36d445 move go_debug_address to getter function
    8453057 move go_debug_windows to getter function
    3f410a2 move go_debug to getter function
    304d33f move decls_includes to getter function
    f3efa4a move def_mode to getter function
    d7a5bda move def_reuse_buffer to getter function
    314c68e move go_doc_url to getter function
    2930788 move echo_command_info to getter function
    1cd371d move gocode_autobuild to getter function
    1b7ef4d move gocode_propose_builtins to getter function
    099b574 move gocode_socket_type to getter function
    b55a422 move gocode_unimported_packages to getter function
    3ed2189 move guru_scope to getter and setter functions
    8448fe8 move info_mode to getter function
    8dc2d06 move list_autoclose to getter function
    58b3a09 move list_type to getter function
    e6978d7 move metalinter_deadline to getter function
    df95e42 move go_play_browser_command to getter function
    d912e7a move go_snippet_engine to getter function
    d909ae1 move go_statusline_duration to getter function
    8a505b0 move go_template_file to getter function
    9c3d45e move go_template_test_file to getter function
    9755ed5 move go_template_use_pkg to getter function
    f08f484 move go_term_enabled to getter function
    e0e32ba move go_term_mode to getter function
    5024c88 move go_term_height and go_term_width to getter functions
    1f59763 move go_test_show_name to getter function
    1d57bda move go_test_timeout to getter function
    d58884b move go_build_tags to getter and setter functions
    13b3edf move go_version_warning to getter function
    7ba265c move go_list_type_commands to getter function
    59622ed move go_autodetect_gopath to getter function
    75210b2 New release: v1.17
    723e924 Merge pull request #1743 from Carpetsmoker/debug-err
    1c308cb Show debug errors as errors and not progress
    73c88fd Fix [[ and ]] jumping
    3b5b148 Add :GoDebugTest (#1728)
    b4eed1e redraw before showing progress message only (#1736)
    e0ba424 Merge pull request #1733 from bhcleek/fix-coverage-prompt
    5eb96da use window id instead of number in all async jobs
    b2591c3 redraw before echo
    baaa178 Merge pull request #1731 from bhcleek/hide-codecov-comment
    50fc7e0 Add codecov.io configuration
    37e2587 update CHANGELOG.md for #1725
    bb80ad5 Merge pull request #1725 from bhcleek/fix-term-enabled-behavior
    bca02bc update CHANGELOG.md for #1713
    8f72dc9 Merge pull request #1713 from bhcleek/cache-import-path
    426621f fix splitright behavior when using a terminal buffer
    afb8e97 remove startinsert and stopinsert pair
    702b795 remove stderr callback
    f80622f Merge pull request #1724 from fatih/list-clear
    8d040e1 list: add go#list#Close()
    16e932c list: make Clean() more useful
    9463308 Merge pull request #1722 from bhcleek/fix-unlikely-term-race
    b43a68c remove redundant changelog entry
    800f294 close the correct location list
    2dcb2d2 update CHANGELOG.md for #1716 and #1721
    f16f546 Merge pull request #1721 from bhcleek/fix-terminal-races
    fe6008e Merge pull request #1716 from bhcleek/fix-go-build-error-parse
    45cc212 Update CHANGELOG.md
    b580823 Merge pull request #1701 from fatih/remove-install
    a265787 Fix various race conditions when using terminal windows
    f916e1e parse go build errors correctly in vim8 and neovim
    dd9b635 add test for GoBuild
    49f560f use go#list#ParseFormat() to parse go vet output
    6d68c01 add test for GoVet
    f2b67ea cache import path lookups results
    d2b0a23 update changelog for #1697
    dcbfdf3 Merge pull request #1697 from bhcleek/async-info
    2499155 add comments to explain offset calculations
    945b636 Make sure :GoDebugBreakpoint works after :GoDebugStop (#1706)
    1bdc75b More reliable way to keep track if the program is running (#1699)
    8c6a186 update CHANGELOG.md for #1678
    5bc8d9e Merge pull request #1678 from entombedvirus/rohith/async-guru-neovim
    2447029 cmd: go 1.10 maintains a build cache now
    ba2a1e8 neovim: invoke guru functions via async api
    eaef6f7 Do not steal focus when linting on save in vim8.
    1292d15 Update ChangeLog
    a9fed32 add  fmt.Errorf() snippet in UltiSnips (#1677)
    a7dd67d Keep current alternate-file name while reading templates (#1675)
    01bea98 fix path separator of minisnip_dir (#1698)
    8c83eb5 always use gocode's vim format
    fb2986d cancel pending async info job when starting another
    b237f52 get type info from gocode asynchronously
    d9d2d27 scope completions variable to autoload/go/complete.vim
    2274cb5 rename preargs to options
    4f9c2e9 Changelog.md: make debugger support more prominent
    6cc4fd8 Update ChangeLog
    52c6da2 add GoDebug (#1390)
    39beabe Merge pull request #1685 from fatih/fix-go-build-bang
    54de23c job: fix bang variable
    6dbac34 Merge pull request #1683 from bhcleek/fix-async-job-closure
    7ed9a82 avoid race conditions in test async jobs
    8f2a66d avoid race conditions in rename async jobs
    83a25f1 avoid race conditions in lint async jobs
    73a38ea avoid race conditions in async jobs
    855c35e avoid race conditions in guru async jobs
    cc0467c Ensure that goPackageComment region ends after comment. (#1673)
    4e871cb update CHANGELOG.md for #1671
    6437d16 Merge pull request #1671 from bhcleek/redraw-before-gocode
    dc3b501 redraw before calling gocode
    f72ea5c update CHANGELOG.md
    a037e36 Merge pull request #1664 from bhcleek/empty-test-message
    20d52eb match test errors with an empty message
    7ec5b46 Merge branch 'metalinter-autosave-list'
    6de9daa Merge pull request #1653 from bhcleek/handle-autowriteall
    18b9897 Merge pull request #1656 from bhcleek/fix-async-race
    5743ce1 update documentation for :GoMetaLinterAutoSave and g:go_metalinter_autosave
    5a205d3 Update Changelog.md
    8d5e37e Merge pull request #1654 from bhcleek/fix-lint-press-enter
    aef5e20 Eliminate race conditions in go test job
    cc24b55 Eliminate race conditions in gorename job
    aa37b42 Eliminate race conditions in gometalinter job
    b63ba83 Eliminate race conditions in guru job
    7c727d9 Only return callbacks from go#job#Spawn
    8bd1716 fix races in go#job#Spawn callbacks
    8787824 document go#job#Spawn
    4b146cb update Test_GometaAutoSave to use location list
    f592349 separate gometalinter error list use cases
    a3716ce do not prompt user to press enter after saving
    561365d handle autowriteall the same as autowrite
    ffb2f43 Merge pull request #1651 from bhcleek/reduce-path-function-scope
    c7316d5 reduce visibility of function
    6c5622f reduce visibility of function
    785f632 update CHANGELOG.md for #1648
    f455b96 Merge pull request #1648 from bhcleek/metalinter-symmetric-enabled-disabled
    e3974b6 Fix handling and change name of g:go_metalinter_excludes
    30d04ad Fix ftdetect (#1645)
    f12f4c8 Update Changelog.md
    19eb058 Update Changelog.md
    8308c8d Merge pull request #1557 from Carpetsmoker/highlight_methods
    bf31604 Update Changelog.md
    aa9ee00 Merge pull request #1640 from bhcleek/fix-metalinter
    7702f5c use directory arguments given to :GoMetaLinter
    4a0fd5d fix relative path regex for gometalinter
    7cc58f2 add tests to verify metalinter autosave behavior
    2ab8f81 Add --include for async runner too
    55f1598 Active buffer relative to workdir for gometalint
    80730c7 Update Changelog.md
    1f675f6 Merge pull request #1641 from bhcleek/fix-show-test-name-toggle
    54c6271 Update Changelog
    332965f Merge pull request #1639 from hokorobi/improve-snippets-abbr
    31e6c28 respect a changed g:go_test_show_name
    1a7150f snippets: improve abbr descriptions for neosnippet
    3ceecc2 support syntax highlighting for bracketed expression in fmt string (#1634)
    204cf8e Remove unused screenshot.png (#1635)
    e880203 update CHANGELOG.md
    8eaa1a4 Merge pull request #1633 from bhcleek/test-timeout-errors
    816cf42 fix quickfix list when test duration exceeds timeout
    992bed6 Update changelog.md
    ab598cc doc.vim: small style change and remove unused function
    b68d13b Merge pull request #1629 from stamblerre/master
    bb99031 update CHANGELOG.md for #1631
    ffdf800 Merge pull request #1631 from wmatusiak/master
    bdcfc10 Fix: GoTestFunc dont respect go_test_timeout
    bf390af New release: v1.16
    8a45bec add additional godoc url configuration
    e0f9c34 Merge pull request #1626 from delphinus/feature/add-note-for-vim8
    b670f23 Add note for deoplete on Vim 8
    6fb095f update CHANGELOG.md for #1611
    19ae4ac Merge pull request #1611 from hiberabyss/master
    d660916 verify 'vsplit' first
    c5d6954 also check whether mode contains 'vertical'
    3a8cc93 Fix go#template#create() for directories that don't exist yet (#1618)
    60a03b1 fix errorformat for compilation errors (#1620)
    7836e8a match vsplit instead of vertical
    ebe70fa improve neovim support
    f4b4ba1 Merge pull request #1583 from bhcleek/tests/test-output-parsing
    40e2e19 update changelog
    6bfc9e2 Merge pull request #1613 from bhcleek/fix-neovim-tests
    869928c Run all test files for Neovim, but skip :GoTest tests
    3bc0099 Make sure all tests run in Neovim
    978f010 Merge pull request #1607 from Carpetsmoker/fillstruct-line
    85c9663 change go_test_prepend_name to go_test_show_name
    3f53d9b add tests for test output parsing
    b8ad7d0 Implement -line for fillstruct
    0c98bdf Another Travis test
    3df438c See if this get build on master
    264fe46 Rename go_highlight_methods to go_highlight_function_calls
    b50d8f2 Fix installing `gocode` on Windows (#1606)
    2a42722 Append Go file type when creating temporary file (#1601)
    7904a27 Add support for denite.nvim about :GoDecls / :GoDeclsDir (#1604)
    47251aa improve testing story (#1605)
    21c2629 Update changelog.md
    48c12aa Merge pull request #1597 from fatih/go-doc-url
    2fe16b9 Support minisnip (#1589)
    6366c6e Code coverage reports with covimerage (#1586)
    539cec6 Highlighting arguments (#1587)
    7f46735 Merge pull request #1602 from mocheryl/rename-usage-function
    a8af95c Rename the usage function to make it callable
    7938c88 Update Changelog.md
    3953d53 doc: use isnot instead of != for better safety
    5daaaf6 guru: scope is not needed for describe mode (#1596)
    07af1c5 doc: make godoc instance configurable
    bbe47d1 Revert "Use :sbuffer in :GoAlternate" (#1595)
    b870a05 Merge pull request #1592 from bhcleek/fix-vim-vint
    f63ac32 fix vim-vint installation
    c923e29 update CHANGELOG.md for #1585
    feee7fa Merge pull request #1585 from Carpetsmoker/test-alternate
    8554d22 show compiler errors when :GoTest fails (#1588)
    48ecb61 Use :sbuffer in :GoAlternate
    ccf98e0 Update CHANGELOG
    974b289 Remove g:go_autodetect_gopath (#1525)
    a9bf3cb Some small test running improvements (#1584)
    6318e1a Sync syntax from start after gofmt (#1582)
    c191a67 Fix :GoImpl completion (#1581)
    432dc7f prepend test name to test errors (#1578)
    e2559cb update CHANGELOG.md (#1577)
    ca8ef8a Merge pull request #1513 from bhcleek/fix-test-error-processing
    57ac640 improve test output handling
    456186f update CHANGELOG.md (#1573)
    bcd555d Merge pull request #1527 from bhcleek/fix-fugitive-errors
    a50c831 Add test and fix Exec() call
    4fe11ea eliminate errors when trying to run a command in a directory that does not exist
    ebbc5b3 Add some VimScript lint tools (#1558)
    a81c1bd Merge pull request #1565 from bhcleek/changelog/1562-1563
    e581f3f typo (#1569)
    c6ea0c1 update CHANGELOG.md for #1562
    c0d209c Merge pull request #1562 from washtubs/master
    d79dd9c update CHANGELOG.md for #1563
    90384c0 Merge pull request #1563 from horgh/horgh/run-gometalinter-on-tests
    770164a Add --tests only when using the default gometalinter command
    70ecda3 Pass --tests flag to gometalinter so that we lint test files
    d05d93a Make :GoTestCompile respect build tags
    ba6ce99 Expand test framework (#1548)
    bd35a4e Add scripts/docker-test (#1550)
    3eefef0 Merge pull request #1553 from wuzangsama/master
    8ee54fa comment out err modeline
    d735fc9 Merge pull request #1551 from bhcleek/docker-image-install-vim
    ee37710 run scripts directly instead of via make in Dockerfile
    95584e3 install vim in the Docker image
    d27a937 Ask for "go env" (#1547)
    7efc3fe Better testing (#1476)
    40e0289 Fix UltiSnips gpl snippet (#1535)
    44e7173 add modeline to CHANGELOG.md (#1546)
    4409db9 Merge pull request #1540 from bhcleek/changelog/1538
    06ba514 update CHANGELOG.md
    5a3a231 Merge pull request #1538 from 'tmatias:toggle_same_ids_check_group'
    ee76970 improve go#guru#ClearSameIds readability
    d3832a4 check group in when toggling same ids
    0878992 Display warning when people use an older Vim (#1524)
    cc93090 Add .editorconfig (#1523)
    b28351f Merge pull request #1528 from bhcleek/add-modelines
    4a8e342 Merge pull request #1529 from fatih/fix-go-play
    219b9a1 tool: fix :GoPlay by using the correct IsMac() function
    448a957 add missing modelines
    51dbbc4 Merge pull request #1461 from bhcleek/gopath-autodetect-default
    2e6b847 disable g:go_autodetect_gopath by default
    faf6288 Merge pull request #1521 from bhcleek/changelog-1519
    544c894 update changelog
    0643e9e Merge pull request #1519 from bhcleek/fix-go-test-compile
    b2ffdaa do not try to run tests for :GoTestCompile
    git-subtree-dir: pack/3rdparty/start/vim-go
    git-subtree-split: 674d0398683c83171f685326098eb5115efece9f
  • Dustin L. Howett's avatar
    Merge commit 'b1ba77fa' · 18efe9ce
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/vim-json/' changes from f5e3181..3727f08 · 120961a7
    Dustin L. Howett authored
    3727f08 Merge pull request #89 from anchnk/master
    51edb42 add jsonl support
    a05984f Merge pull request #63 from mstrzele/AWSCloudFormation
    48179b6 Merge pull request #76 from rhysd/reasonable-bool-number
    7b7746f Merge pull request #88 from Akin909/patch-1
    330e0e6 Fix indentline concealcursor command
    6b36d75 Improve jsonBoolean and jsonNumber highlight colors
    7d9e67f Detect AWS CloudFormation templates
    git-subtree-dir: pack/3rdparty/start/vim-json
    git-subtree-split: 3727f089410e23ae113be6222e8a08dd2613ecf2
  • Dustin L. Howett's avatar
    Merge commit '120961a7' · 30b98569
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/tagbar/' changes from bef1fa40..387bbadd · cb19f0ff
    Dustin L. Howett authored
    387bbadd Highlight correctly if visibility disabled
    c0046527 Only equalize windows after shrinking app window, closes #452
    8d2c44f6 Merge pull request #458 from ithinuel/master
    7f693a0c Rust: fix method kind from F to P
    dc155af2 Merge pull request #451 from mathia4/master
    af94c07a Formatting
    c86ab1ca Update uctags.vim
    2261625e Merge pull request #450 from natfitz/patch-1
    e330124f Update tagbar.vim
    git-subtree-dir: pack/3rdparty/start/tagbar
    git-subtree-split: 387bbadda98e1376ff3871aa461b1f0abd4ece70
  • Dustin L. Howett's avatar
    Merge commit 'cb19f0ff' · 73af3c4c
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/ultisnips/' changes from 423f264e..6fdc3647 · 86ab387d
    Dustin L. Howett authored
    6fdc3647 feature/docs-improvement-of-is-expandable-func (#975)
    30e651fb refactor documentation with snippets loading procedure section (#954)
    905e5249 Rename some variables for added clarity. (#977)
    21ea2f4e Hoist up folding. (#976)
    64a023a7 Towards using an internal buffer for all snippet updates. (#973)
    165dd4b3 Code simplifications. (#972)
    943156d8 Add note about contributing to traceback (#969)
    f4304d59 fix bug when vim option 'selection' is 'exclusive' (#883)
    4eac9798 Disable auto detecting changes to snippet files on expansion (#967)
    90142745 Minor simplifications. (#966)
    debef2b1 Remove long unused .bzrignore. (#968)
    36f56187 Removed unnedded code. (#963)
    64289acd Update issue_template.md (#959)
    01c4bde1 Remove travis caching and avoid rate limiting.  (#962)
    411d0118 Use a GitHub access token to avoid rate limiting of API. (#961)
    1e35bb38 Mention deoplete as supported.
    c5ef0d03 Fix UltiSnipsSnippetDirectories suggestion in docs (#960)
    519597a2 Tweaking GitHub issue template.
    acb3fc32 Tweaking GitHub issue template.
    0058ddb9 Tweaking GitHub issue template.
    5e10218e Added a GitHub issue template.
    0f422948 Adds a CONTRIBUTING.md file.
    da6efc3e Rename scripts -> docker. Make repro more useful.
    42956dd1 Fix pwd call.
    15460220 Make makefile a bit more powerful.
    c7a9d21d Add a dockerfile for quick, manual testing.
    9777b6ec document IsExpandable() to check if snippet is expandable without expanding (#957)
    b11b397d Eur symbol is translated in EUR instead of EU.
    53c6771d Install unidecode, so that all things we can test are tested.
    cd5c1fd0 Install vim in /usr/local instead of /root inside docker.
    6ee724a1 Enable testing for python3 too. (#955)
    662e0360 Actually load the docker cache before executing tests.
    71ab5319 Add support for editing snippets in a new tab (#917)
    23b9f11b Fix character selection when using VISUAL on all platforms (#926)
    539c5576  Move travis testing into docker for better consistency. (#950)
    3515cb6c Adapt to the new way that tmux wants unicode be send.
    2470a1b3 Updated release date for 3.1.
    a8e7e269 Documentation improvements: don't clean 1st tabstop if it's not empty (#929)
    89c93fc0 Mark source as volatile (#844)
    git-subtree-dir: pack/3rdparty/start/ultisnips
    git-subtree-split: 6fdc3647f72e0a1f321ea6bd092ecd01f7c187ba
  • Dustin L. Howett's avatar
    Merge commit '86ab387d' · ac577144
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/vim-snippets/' changes from bd3762c9..936ac517 · 91b30c24
    Dustin L. Howett authored
    936ac517 Remove trailing slash from auto-closing tags (#1081)
    65d61d8c fix same sinppet name issue (#1080)
    4b1fb31c eelixir gettext
    2573abcb fix C0326: Exactly one space required after comma (bad-whitespace) for python snip (#1078)
    b51c0113 Turn comments into descriptions for go.snippets
    cd463f36 Correct invalid Freemarker snippets
    f1e4604a Elm element
    66f7f86e Comment out the EOL in LaTeX section-like commands.
    15c00724 Add freemarker snippets
    39219ca2 Make the README a bit more user friendly
    bc4fceb2 Tidy up a few things in the README
    4e380092 Use references instead of inline links in README
    a4147d31 Remove trailing whitespace from README
    0ee73907 Correct scheme indention
    b0c528e9 Add error handling snippet for Go using errors.Wrap()
    5d6e3f13 Respect optional typehints in PHP Constructors
    2af1ffe8 Add cpp make_shared and make_unique snippets (#1072)
    225647b6 Add Many Racket Snippets (#1069)
    1a08e283 New snippets and improvements
    fbd78a8a Remove semicolon
    1c02caa5 Basic OCaml snippets
    7c7e7d47 fix duplicated 'ast'
    1143432a corrected descriptions
    0b73ea25 markdown text formatting
    103523db VISUAL in the t and ti snippets
    10bfa99c Add typescriptreact snippets to extend typescript
    e3ca7f0f Dedupe Erlang snippets
    6d6cc255 Fix space identation error
    34ae91eb Add more snippets for vim-plug in vim.snippets
    54552eab Use 'plug 'for vim-plug in vim.snippets
    62f46770 added align align*
    05fc5b4c added physics related snippets
    15115294 Add new snippets for python
    571e260b all.snippets - %F not work on windows
    3d4006f3 remove duplicate doctype snippets in html
    87dd0531 add VISUAL placeholder; remove option "b"
    880c57c0 renamed UltiSnip 'af' to 'anf' (anonymous function) to avoid conflict with ES6 'af' (arrow-function)
    9e48a8aa renamed 'f' to 'anf' (anonymous function)
    359cf9d2 'irc' snipper for React, {Component}
    3dd8f06c added 'getElementsByClassName' by 'c' in 'javascript'
    954929da fixed tabstop numbering
    96eba286 added video with class snippet
    1abd3dfe fixed quotes on html 5 video snippet
    b902dd1a added acronym and minted extension
    c54452df Add rspec allow snippets
    498e6638 Correct Reason switch
    b77cdcc9 fixed typo: two -> three
    4e4d080a Add a go snippet for HTTP handler methods
    d081fa51 Add AsRef and AsMut implementations to rust.snippet
    35ad75a4 Update ReasonML to new syntax
    3733ca9f Spurious line break in eqann snippet (#1039)
    b5183227 Added PLSQL snippet file (#1036)
    8817da52 Small improvements (#1037)
    3be398cd classheader and defheader using puppet strings (#1031)
    1b242212 Work on ps1 snippets (#1032)
    f02955d4 add snippet "multicol2"
    b3e2ebe1 added snippet for \alert{}
    4d9d9c48 Add snippet generating random UUID, fixes #1028
    b7540c3b Rename identically named `try` snippets in python.snippets
    8bb7a146 C++ auto function snippet
    00021fdd Prefer json over xml
    07089297 Escape the newline after sectioning snippets
    71d91aec Added dynamic tabular environments
    0da44d11  [!] python.snippets Various Snippet additions
    dd4e82b4 Rust: Add additional jump in front of {}
    458947b6 Rust: Improve pri, pln, and fmt
    405ea72b Elixir snippets
    4b3bacfa Add snipmate version of rails migration model
    d64a4900 Rails Migration Model Class
    9cba5658 Alpaca snippets
    855f239c Markdown code uses visual
    264052b2 Remove dupe
    c16a7495 Add "nocxx" snippet.
    174f572f snippet enq for \enquote{} (#1015)
    0cdfb7db Add cpp anonymous namespace snippet (#1012)
    931d22b2 Fix collision for <img> tag in html and html_minimal. (#1010)
    765f7ad2 Correct JS React snippets filename
    9ca53350 Kotlin object
    c3869d4c Kotlin if ife
    0e36a7b0 Kotlin
    82e8ea44 Haskell mod
    d50d05fc robot: some additions and updates (#1006)
    7ce415ef add snippet for \overline
    e116db73 Scala tweaks
    01780cbf Add ret snippet
    2b140a7c Use quote style when writing slot arguments
    410007b0 Remove annoying spaces within <span>
    f03b63a3 robot: fix Set Variable keyword (#1001)
    a7670a7b Merge pull request #1000 from mwcz/patch-1
    91ef7aa3 remove extra indent from UltiSnips html.snippets
    ad16bdfe TeX: Minted snippet (#992)
    fd938943 Add phpunit v6 snippet (#995)
    221a77d5 Add snippets for Robot Framework (#991)
    7d635149 Add useful vimscript snippets (#999)
    8bad6f59 Elixir impl
    cec65178 Update Dart snippets to 1.0.0 syntax (#997)
    917310b3 javascript-openui5 Snippet was in wrong folder
    git-subtree-dir: pack/3rdparty/start/vim-snippets
    git-subtree-split: 936ac51771170876ae126a5b59b0205705c1d500
  • Dustin L. Howett's avatar
    Merge commit '91b30c24' · 9adace62
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/vim-fugitive/' changes from 42daa318..0fd64f8f · 5d15d360
    Dustin L. Howett authored
    0fd64f8f Remove FugitiveGenerate() in favor of FugitiveFind()
    2845e6dc Fail silently retrieving work tree for blank git dir
    7fae98f2 Associate conflicted files with relevant commits
    a9100faf Show 7 not 8 SHA charcters in statusline
    9fec8aad Use merge-base as starting point for ranged :Gbrowse
    66697b99 Don't throw error on invalid URL to FugitiveParse()
    fb553199 Show error getting type for object in BufReadCmd
    02fe20ec Use :keeppatterns with :substitute
    6cd8ff77 Fix undefined variable
    af76267c Fix backport of @ to old Git
    144b7394 Older versions of cat-file do not accept --
    d4fb2a2f Fix modeline support in historical buffers
    4bf30ce9 Dogfood fugitive#Prepare()
    0fe09643 Enhance fugitive#Prepare()
    8b4a1017 Simplify :Gstatus reset logic
    66e0fe5d Fix - in :Gstatus on line 1 as Vinegar like navigation
    61b09ca6 Fix gf in gitcommit diff
    b3651aa7 Use platform path separator for Projectionist config
    fd83fcaf Support expansion flags
    1e378673 Add potential alternative name for FugitiveRoute()
    4d3835f6 Accept buffer number to FugitiveRoute()
    44e5df84 Provide API for retrieving working dir relative path
    a202238b Support Projectionist config in .git/info/projections.json
    bb2797d3 Special case :0Gread to get around FileReadCmd limitations
    67e9756c Support .git/.. to refer to work tree
    ae2005ad Return '' for FugitiveRoute('')
    ed36717a Use 2 argument system() rather than stdin redirect
    b1ab9903 Use -- to disambiguate arguments
    2b5effe2 Fix :Gbrowse with cwd other than work tree
    662b501e Resolve temp files only when using as buffer name
    7bdf33d3 Always convert backslashes on Windows
    e9dc3637 Fix check for need to convert Windows path slashes
    9979b2ab Ignore 'shellslash' when checking for Win32 shell
    85892465 Tweak check for Win32 shell
    7b0aa580 Accept ./ paths as relative to cwd
    45c21fc3 Normalize path specs when generating commands
    8dc13a6a Restore backwards compatible behavior of repo.translate()
    0614acc7 Fix issues with commit:./relative completion
    1a7b07cf Support commit:./relative style revisions
    4a3c6b4a Adjust section headers
    e3c9588e Extract function for getting current commit/ref
    40facfde Rewrite <C-R><C-G> and y<C-G>
    236bd21b Use <nowait> for - maps
    e9ce3139 Support pathspec arguments to :Gcd
    74b10425 Fix legacy expansion of bare caret/tilde
    1a041936 Provide less awkward signature for s:Prepare()
    a358191c Use unambiguous paths for :Gstatus dot map
    597289e6 Handle :Gmove paths consistently
    7ea21ca9 Give precedence to absolute paths over pseudo-relative
    2ca0765d Ignore dot files when globbing
    347d309e Mention :Gcommit %
    6138aebb Fix minor spelling error in help document
    dd262b7e Decouple routing from repo object
    f91c3406 Decouple Head() from repo object
    40e2dcba Delegate to other real filename implementations
    a3e95181 Fix file API to distinguish between commits
    8c633143 Report error checking for merge conflict
    12e01517 Adjust completion of /absolute/paths
    887d86e9 Don't strip trailing slash from URLs
    73ed8e8a Fix check for empty remote
    4bf7f2fd Support :(top) pseudo-pathspecs
    08d47105 Provide fugitive#Prepare()
    969a3d85 Don't escape "!" when calling :terminal
    06b3da72 Fix shell expansion in :Git! buffers
    db3b837e Rewrite :Glog to use string argument rather than list
    b780bce3 Expand argument to :Gwrite
    a615172b Edit index file when no work tree present
    caee67c7 Fix query operations in bare repositories
    1fea1e58 Support :Gedit /absolute/path when possible
    80e410c8 Fix :Gedit default from commit to work tree
    84fcfae7 Unify shell expansion
    4d684256 Update :Gbrowse docs
    0e948d51 Fix write command with Win32 path
    4eee908a Adjust :Gbrowse range for upstream head
    c1d2fc1a Remove filename expansion from buffer object
    c85980cd Rename s:shellslash() to s:Slash()
    81deb633 Improve worktree support
    85f34059 Fix :Gbrowse in historical buffers
    fc8f9eda Rename Fugitive revisions to Fugitive objects
    c82abd05 Fix function reference
    d859e05f Really fix :Gcd
    3feda7f4 Fix :Gcd
    c9c406a1 Fix extra slash generating work tree filenames
    a877908a Fix check for absolute path in FugitiveGenerate()
    6c89a367 Support :Gedit +cmd ++opt
    bf796562 Add better name for function as alias
    023ab8e4 Eliminate s:repo() and s:buffer()
    da95d96e Replace s:repo().rev_parse()
    8a0a448f Show fake trees when editing directory in index
    004da420 Match trailing slash in FugitivePath()
    8b419404 Rearrange
    716edd4b Redo completion
    70c0f132 Fix :Gblame
    a8392e0e Fix fugitive#Real() with non-Fugitive URL
    64fbfc7a Whitespace fix
    f232e4c6 Support completion of local commits for --fixup=/--squash=
    db7fd110 Move implementation functions below public API
    248764f2 Provide FugitiveGitDir()
    f8fb5eaf Eliminate remaining s:repo().dir() and s:repo().tree() calls
    4f82d241 Fix jump to file
    f761ea70 Rewrite :Gedit and :Gread
    035cdf44 Make fugitive#Prepare() private
    deaf4aa1 Pass absolute paths through FugitiveGenerate() unchanged
    da066426 Use <amatch> in detection autocommands
    4643363b Handle FugitiveReal('') correctly
    c5d4ce74 Fix map to follow the pattern
    6eadff11 Correct the directory separator of Path() on Windows (#1067)
    c68fb3c8 Remove redundant maps
    6c09ce3a Prefer :Gedit to s:Edit() where possible
    cec05fac Fix missing :Gblame in work tree files
    4b0475f9 Map <CR> in blobs to jump to blamed commit
    8edc9cd0 Work around janky autocommands when returning to diffed window
    382c0a54 Provide config functions globally
    c472b8f2 Provide file permission API
    30c2490b Provide file writing API
    5a9b7a59 Provide file deletion API
    4ce86464 Remove s:repo().aliases()
    321f63ff Compartmentalize filetype support
    7f299fbb Eliminate remaining uses of s:buffer().type()
    6d0df817 Run correct auto-commands for BufWrite and FileWrite
    5cea916e Support Vim without SourceCmd
    c3c39d90 Try embedding shell cd if -C not available
    6bab1a0c Map p to jump to file in preview window
    49c2a4ac Revert "Unify jump to file logic"
    73c39195 Unify jump to file logic
    f818a947 Map p to in :Gblame to open commit in preview window
    fbaa831e Show error on :Gblame jump on uncommitted line
    07d30de8 Return relative paths with second argument to FugitivePath()
    c693da9c Drop support for uppercase statusline indicator
    1e7e7076 Preserve trailing slash in FugitiveReal()
    d818ac93 Make bang argument to :Glog explicit
    2fcf9546 Remove obsolete instaweb reference from README
    286476d5 Fix upwards navigation on "-"
    b78a8ab8 Remove indirection
    e6e3f3f2 Don't :cd if directory already correct
    240127f5 Eliminate use of buffer.commit()
    bfc1745f Handle bare repository case when shelling out
    93f29cf8 Fix shelling out from subdirectory
    58793047 Move GIT_INDEX_FILE override closer to home
    196e4483 Make :Gmove always relative to repository root
    e0b770a9 Drop instaweb support
    c9387379 Encapsulate fugitive#buffer().relative()
    978ca4a5 Encapsulate fugitive#repo().git_chomp_in_tree()
    a8626a4c Avoid false positive matches of status files in non-status buffers
    4a5781bc Fix issue generating Fugitive URLs
    71acb7da Provide FugitiveGenerate() and FugitiveParse()
    1e41a88e Default to branch remote rather than origin
    9e7b67e9 Refactor repo.translate for future extraction
    445a8160 Provide Git dir to browse handlers
    cb49f8b4 Drop repo.dirglob
    6aa3f09e Drop buffer.up
    197ca58a Remove unused variable
    7165817b Attempt 2 at fixing :Gbrowse tagname
    be68a8ec Add Git config query functions
    b8046d1c Reduce noise on E211 from :Git
    b7e57637 Add warning for editing invalid Fugitive URL
    35f94eef Make argument to FugitiveTreeForGitDir optional
    c118dabb Fix :Glog
    8c076e3f Drop some silly instance methods
    0aa3389f Decouple :Gcommit from repo object
    fb228998 Rename overlooked snakecase function
    56e49478 Support FileWriteCmd
    99f04311 Thorough error reporting for broken system() calls
    29411e28 Decouple autocommand functions from repo object
    c0b6faea Support SourceCmd for Fugitive URLs
    792154e4 Unify FileReadCmd autocommands
    0717396a Avoid some redundant --git-dir arguments
    9b9a81b1 Fix error on failure to load buffer
    598ad040 Fix b:fugitive_type in temp buffers
    805c0bbd Fix i and a in :Gstatus
    1971f8fd Restore highlight after warning message
    5ba918ea Support :Gread commit to read commit message
    27475a5d Provide function for preparing Git shell command
    e3b1af60 Work around bad b:git_dir from ftplugin/git.vim
    c9d6c834 Loosen regexp to allow for Windows paths
    8df07316 Extract helper for robust tempname
    9bc425e9 Add missing function
    65346f09 Fix readfile
    5a7469d8 Improve error reporting for BufReadCmd autocommands
    6f07b180 Allow opting out of :terminal in Neovim
    302f30c9 Handle :Gcommit % when working dir isn't Git dir
    7316baff Fix typo in regexp
    85c6c7a8 fugitive.vim 2.4
    6f9fa8a4 Document P as preferred :Gcommit map for patching
    65a53b5f Guard against future NERDTree API changes
    0a75ec5d Provide file API
    80ff014d Add function alias
    b5f7c37d Replace buffer.path() with buffer.relative()
    6d2a8323 Handle bare repos in FugitivePath()
    ea38c7d6 Don't include newline in Git version
    2c30e116 Avoid unnecessary IO in translate()
    19885189 Rename FugitiveFilename() to FugitivePath()
    2a817bb5 Fix :Gbrowse tagname
    38c69cfe Rename blob() to relative()
    70a36cee Alias buffer.path() as buffer.blob()
    f71079db Work around guioptions+=! on Windows
    cbf96cc0 Clean up repetition in URL parsing
    8fa5cad8 Fix references to renamed functions
    251853bc Fix use of <Plug> in a <script> map
    639b9f9a Fix load order issue setting up maps
    13f39967 Loosen match for hunk header
    d39d5ca4 Accept alternate forms of Fugitive URL
    bb548813 Jump directly to commit rather than ref file in more cases
    f7bcf51c Extract ftdetect file
    cc9d8d93 Add FugitiveFilename() to determine corresponding real file
    b571bff9 Specify 'nowrite' to status buffer and blame buffer
    5c2095be Camel case public functions
    5d11ff75 Extract autoload file
    dd4d4c75 Update statusline function in README
    013ee636 Drop 'compatible' check
    ddec4bfa Move foldtext autocommand back to folding section
    f8913cda Fix :Gcommit invocation of :Gstatus
    68e097db Gather up global autocommands and functions
    d850dff1 Expose Cmd autocommand functions
    8977570a Handle symlinked directories more aggressively
    caf89d79 Provide official function for configured tree
    c8b1a7d9 Remove self evident comment
    0e2680f9 Separate detection from initialization
    8c435050 Provide :Grebase (no --interactive)
    fecd4286 Handle unusually named netrw buffers
    01e7a7e1 Switch out new and old official functions
    b129752c Fix maps that rely on s:Edit
    aa0210a9 Support <mods> on :Gstatus and :Gedit family
    d7c377f3 Loosen regexps to accept alternate comment chars
    cde670ee fugitive.vim 2.3
    26433842 Revert accidentally committed changes
    eeaadf72 Fix off by one error
    65be0ae7 Fix accidental version bump
    6faf165e Avoid non-file windows for :Gstatus open
    614e20bb Dispatch BufReadPre
    33b7c1a5 Don't run autocommands loading temp file
    2a471433 Remove #Repo and #Buffer
    994d781f Add deprecation warning for :Gstatus cA
    a5a75aca Bring back :Gstatus C with a warning
    0078c761 Blow up if user assigns string to map variable
    e0fa7236 Fix missing bang on function
    a22adef4 Use capitalized names for official functions
    b14434ba Tweak :Gstatus commit maps
    5c2eccd5 Fix unique map check
    b1df5f12 Allow mapping overrides
    b3408354 Make :s use more robust
    dcecb762 Add :Grename
    fa1b8652 Add .gitattributes
    40d78f07 Strip out carriage returns
    63a80f4b Remove unused variable
    3bdac8b6 Tighten explanation of no commands FAQ
    d87ad99e Remove outdated FAQ about :Gbrowse
    b6806994 Don't force tab for :Gcommit --verbose
    3ac95c4d Add support for :tab Gcommit
    409b098c Optimize fugitive#foldtext
    3e0bd86b Add a note about options
    9268cb4e Link to commit.style
    b82abd5b Link to quickfix help topic
    f3ccb0c1 BufReadObject: handle rev-parse errors
    5032d9ee Strip backslashes on expansion
    de6c0572 Use NERDTree.root instead of removed NERDTreeRoot
    d16cd9ce Update "OS X" to "macOS" in README
    7c9b87a3 Fix escaping in :Gblame
    git-subtree-dir: pack/3rdparty/start/vim-fugitive
    git-subtree-split: 0fd64f8fbfa7eda26a7dcc7d3102843edbe2324d
  • Dustin L. Howett's avatar
    Merge commit '5d15d360' · 6d094dba
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/vim-fswitch/' changes from e716da1e..94acdd8b · 01b142ac
    Dustin L. Howett authored
    94acdd8b Merge pull request #9 from mojoTX/master
    b4ed66e8 Merge branch 'sebi2k1-master'
    db92b125 Merge branch 'master' of https://github.com/sebi2k1/vim-fswitch into sebi2k1-master
    cead3183 Added FSTab command
    60d32f28 Restore buffer if matched file is already opened.
    git-subtree-dir: pack/3rdparty/start/vim-fswitch
    git-subtree-split: 94acdd8bc92458d3bf7e6557df8d93b533564491
  • Dustin L. Howett's avatar
    Merge commit '01b142ac' · baf49d47
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/vim-pathogen/' changes from e7857bed..06da9216 · 5d942892
    Dustin L. Howett authored
    06da9216 Fix confusing negative in contribution guidelines
    f4fd6044 Rewrite contribution guidelines
    git-subtree-dir: pack/3rdparty/start/vim-pathogen
    git-subtree-split: 06da921608b971fb47603671bcafdb2843992eb3
  • Dustin L. Howett's avatar
    Merge commit '5d942892' · 7687045c
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/vim-repeat/' changes from 070ee903..43d2678f · a4adc6d9
    Dustin L. Howett authored
    43d2678f Remove outdated plugin references
    1ea8a532 Update installation instructions
    8fe8bde4 Change Markdown heading style
    8106e142 repeat.vim 1.2
    1b82cad7 Fix undo messages being hidden (#33)
    git-subtree-dir: pack/3rdparty/start/vim-repeat
    git-subtree-split: 43d2678fa59d068c815d8298331c195e850ff5a7
  • Dustin L. Howett's avatar
    Merge commit 'a4adc6d9' · 6852c3d3
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/vim-surround/' changes from e49d6c24..59706887 · 1b1983c2
    Dustin L. Howett authored
    59706887 Fix blank lines issue
    aa1f120a Fix yss in middle of line
    643a4245 Fix yss adding newlines
    4e7d573c Make ys maps atomic
    e8dca615 Modernize README
    git-subtree-dir: pack/3rdparty/start/vim-surround
    git-subtree-split: 597068870b8f093a8b2d11536c62ff31222ee8d0
  • Dustin L. Howett's avatar
    Merge commit '1b1983c2' · c13f21a7
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/vim-abolish/' changes from b6a8b49e..9a0e96d3 · 4d53cba4
    Dustin L. Howett authored
    9a0e96d3 Handle case where global Func() exists
    62a593e9 Drop dependence on repeat.vim
    40e8b973 Remove repeat.vim reference from README
    git-subtree-dir: pack/3rdparty/start/vim-abolish
    git-subtree-split: 9a0e96d359bfa23a4b410e65e2fa3b708d5e1724
  • Dustin L. Howett's avatar
    Merge commit '4d53cba4' · 90dfe413
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/ctrlp/' changes from bde7a295..ebc568c3 · 4cc28484
    Dustin L. Howett authored
    ebc568c3 Merge pull request #479 from ctrlpvim/fix419
    dae61350 Merge pull request #444 from hiberabyss/master
    bebe7fd2 Fix #419
    43cc73b8 Merge pull request #456 from ctrlpvim/fix-many-ctrlp-is-set-to-filetype
    03c46b1d Fix filetype is set to multiple ctrlps
    60378206 Merge pull request #454 from ctrlpvim/fix-filetype-detection
    fd327db4 Fix filetype detection mechanism
    e66b5b50 Merge pull request #451 from ctrlpvim/fix-breaking-highlight-for-extensions
    414bc941 Fixes #450
    306bc60a Fixes #445
    6ffa5bbb Merge pull request #316 from HerringtonDarkholme/master
    bf5dfef2 fix issue #437: make CtrlPBufTag work for help file
    4b9e7cac Fix to respect case for file names
    c13c1249 Merge pull request #425 from shyun3/pullreq
    795f6b1d Fix issue #136
    5c067a3b Merge pull request #424 from mluts/support-vim8-terminal
    31e1471e Add support for vim8 terminals
    35c9b961 Merge pull request #420 from borisbrodski/master
    73a7ef79 Bump version to 1.80
    88abbcb9 Merge pull request #413 from ptzz/master
    8db39ec3 Merge pull request #402 from ctrlpvim/no-percent-cmd
    d62bbc51 Fix issue with CtrlPLine and empty search string
    ceed7c58 Possible to be specify g:ctrlp_user_command without %s
    53eac86e set ctrlp buffer's filetype
    git-subtree-dir: pack/3rdparty/start/ctrlp
    git-subtree-split: ebc568c3992d9002d1d35b85737dfa0d9ce70d9f
  • Dustin L. Howett's avatar
    Merge commit '4cc28484' · de3a414e
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/neocomplete/' changes from 970cba43..4be61794 · 031e367a
    Dustin L. Howett authored
    4be61794 Merge pull request #605 from jsit/jsit/css-min-keyword-604
    5fdf46ac Change css, scss, and sass Omni input pattern to match min_keyword_length
    1401a1c6 Merge pull request #603 from andresilveira/patch-1
    82f89bad Update README.md
    2f30d834 Fix timer check
    46791e76 Update README
    125e1fb8 Update README
    261d5098 Improve feedkeys()
    git-subtree-dir: pack/3rdparty/start/neocomplete
    git-subtree-split: 4be617947f3fcf2d725fab20b0e12f8b46c9e2f3
  • Dustin L. Howett's avatar
    Merge commit '031e367a' · 81b8be51
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Merge commit '3aa95627' · ebf1f67e
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/vim-ps1/' changes from 220338c8..0b2509f2 · df0a107b
    Dustin L. Howett authored
    0b2509f2 Define buffer-local keymap instead of global one
    git-subtree-dir: pack/3rdparty/start/vim-ps1
    git-subtree-split: 0b2509f210f5dc73001fdcfe8fd7ac354b363388
  • Dustin L. Howett's avatar
    Merge commit 'df0a107b' · 6cbb6710
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/vim-sneak/' changes from f31640f8..91192d89 · e307bb46
    Dustin L. Howett authored
    91192d89 SneakEnter, SneakLeave events
    e4eb91a4 refactor: rename augroups
    74ae9f2b refactor: eliminate sneak#hl namespace
    e4b8789c label-mode: highlight cursor position with SneakScope
    5d81dcce label-mode: always show labels
    943e0844 mark s:rpt() as private
    5028f9b7 cleanup: remove sneak/debug.vim
    aada4e90 minor logic simplification
    9dbf2f14 Merge #226 'dot-repeat for &operatorfunc (g@)'
    214eec87 label-mode: explicit preselected label parameter
    031a0bbf cleanup
    545e48eb dot-repeat of 'operatorfunc' (g@)
    1fef4f59 test: depend on vim-surround
    6244662b label-mode: avoid micro-management of other windows
    1b02940e doc
    fec155db cancel prompt with CTRL-g
    git-subtree-dir: pack/3rdparty/start/vim-sneak
    git-subtree-split: 91192d8969af1d86c98beff4001612976ea25d7a
  • Dustin L. Howett's avatar
    Merge commit 'e307bb46' · 368434b2
    Dustin L. Howett authored
  • Dustin L. Howett's avatar
    Squashed 'pack/3rdparty/start/undotree/' changes from cdbb9022..9172c17f · 0f392888
    Dustin L. Howett authored
    9172c17f Merge pull request #95 from lacygoill/fix-Undotree_CustomMap
    5780e72e Merge pull request #94 from lacygoill/add-abort-argument
    4911d2dc Merge branch 'master' into add-abort-argument
    f5ee8c3f Merge pull request #92 from lacygoill/fix-command-line-window
    868644ce Update custom mappings in documentation
    f2737994 Fix E11 error raised from command-line window
    dc426942 Make functions abort immediately when an error is raised
    c15a0409 Merge pull request #91 from mbbill/fix_diffmark
    551db5a8 Fixed diff mark not udpated
    364c73da Marking diffs with signs
    b1b7667a autochdir will sometimes change the bufname('%') results and making it harder to tell if the buffer is belong to undotree. Switching to a buf variable would be much reliable.
    a80159c9 Updated quick help.
    642c6e00 Merge branch 'master' of https://github.com/mbbill/undotree
    ee3ff8cc Set auto commands only when undotree windows is open
    git-subtree-dir: pack/3rdparty/start/undotree
    git-subtree-split: 9172c17f6d07405f14707ff273e3ca9f35aa9e42
  • Dustin L. Howett's avatar
    Merge commit '0f392888' · 7cab36e6
    Dustin L. Howett authored
......@@ -439,6 +439,14 @@ fu! ctrlp#addfile(ch, file)
cal s:BuildPrompt(1)
fu! s:safe_printf(format, ...)
retu call('printf', [a:format] + a:000)
retu a:format
fu! s:UserCmd(lscmd)
let [path, lscmd] = [s:dyncwd, a:lscmd]
let do_ign =
......@@ -461,9 +469,9 @@ fu! s:UserCmd(lscmd)
let g:ctrlp_allfiles = []
let s:job = job_start([&shell, &shellcmdflag, printf(lscmd, path)], {'callback': 'ctrlp#addfile'})
elsei has('patch-7.4-597') && !(has('win32') || has('win64'))
let g:ctrlp_allfiles = systemlist(printf(lscmd, path))
let g:ctrlp_allfiles = systemlist(s:safe_printf(lscmd, path))
let g:ctrlp_allfiles = split(system(printf(lscmd, path)), "\n")
let g:ctrlp_allfiles = split(system(s:safe_printf(lscmd, path)), "\n")
if exists('+ssl') && exists('ssl')
let &ssl = ssl
......@@ -532,7 +540,7 @@ fu! s:bufparts(bufnr)
fu! ctrlp#buffers(...)
let ids = sort(filter(range(1, bufnr('$')), '(empty(getbufvar(v:val, "&bt"))'
\ .' || s:isneovimterminal(v:val)) && getbufvar(v:val, "&bl")'), 's:compmreb')
\ .' || s:isterminal(v:val)) && getbufvar(v:val, "&bl")'), 's:compmreb')
if a:0 && a:1 == 'id'
retu ids
......@@ -555,7 +563,7 @@ fu! s:MatchIt(items, pat, limit, exc)
for item in a:items
let id += 1
if (s:matchcrfile || !( s:ispath && item == a:exc )) &&
if (s:matchcrfile || !( s:ispath && item ==# a:exc )) &&
\call(s:mfunc, [item, pat]) >= 0
cal add(lines, item)
......@@ -1143,6 +1151,7 @@ fu! ctrlp#acceptfile(...)
\ md == 't' || s:splitwin == 1 ? ( useb ? 'tab sb' : 'tabe' ) :
\ md == 'h' || s:splitwin == 2 ? ( useb ? 'sb' : 'new' ) :
\ md == 'v' || s:splitwin == 3 ? ( useb ? 'vert sb' : 'vne' ) :
\ &bt == 'help' ? 'b' :
\ call('ctrlp#normcmd', useb ? ['b', 'bo vert sb'] : ['e'])
" Reset &switchbuf option
let [swb, &swb] = [&swb, '']
......@@ -1582,7 +1591,7 @@ fu! s:formatline(str)
let bufnr = s:bufnrfilpath(str)[0]
let parts = s:bufparts(bufnr)
let str = printf('%'.s:bufnr_width.'s', bufnr)
if s:has_conceal
if s:has_conceal && has('syntax_items')
let str .= printf(' %-13s %s%-36s',
\ '<bi>'.parts[0].'</bi>',
\ '<bn>'.parts[1], '{'.parts[2].'}</bn>')
......@@ -1948,7 +1957,7 @@ endf
fu! s:dictindex(dict, expr)
for key in keys(a:dict)
if a:dict[key] == a:expr | retu key | en
if a:dict[key] ==# a:expr | retu key | en
retu -1
......@@ -2020,10 +2029,10 @@ fu! s:bufnrfilpath(line)
fu! ctrlp#normcmd(cmd, ...)
let buftypes = [ 'quickfix', 'help' ]
let buftypes = [ 'quickfix', 'help', 'nofile' ]
if a:0 < 2 && s:nosplit() | retu a:cmd | en
let norwins = filter(range(1, winnr('$')),
\ 'index(buftypes, getbufvar(winbufnr(v:val), "&bt")) == -1 || s:isneovimterminal(winbufnr(v:val))')
\ 'index(buftypes, getbufvar(winbufnr(v:val), "&bt")) == -1 || s:isterminal(winbufnr(v:val))')
for each in norwins
let bufnr = winbufnr(each)
if empty(bufname(bufnr)) && empty(getbufvar(bufnr, '&ft'))
......@@ -2297,8 +2306,8 @@ fu! s:delbuf()
cal s:PrtClearCache()
fu! s:isneovimterminal(buf)
retu has('nvim') && getbufvar(a:buf, "&bt") == "terminal"
fu! s:isterminal(buf)
retu getbufvar(a:buf, "&bt") == "terminal"
" Entering & Exiting {{{2
fu! s:getenv()
......@@ -2587,6 +2596,20 @@ fu! s:ExitIfSingleCandidate()
return 0
fu! s:IsBuiltin()
let builtins = ['tag', 'dir', 'bft', 'rts', 'bkd', 'lns', 'chs', 'mix', 'udo', 'qfx']
let curtype = s:getextvar('sname')
return s:itemtype < len(s:coretypes) || index(builtins, curtype) > -1
fu! s:DetectFileType(type, ft)
if s:IsBuiltin() || empty(a:ft) || a:ft ==# 'ctrlp'
retu 'ctrlp'
retu 'ctrlp.' . a:ft
fu! ctrlp#init(type, ...)
if exists('s:init') || s:iscmdwin() | retu | en
let [s:ermsg, v:errmsg] = [v:errmsg, '']
......@@ -2610,6 +2633,7 @@ fu! ctrlp#init(type, ...)
cal ctrlp#setlines(s:settype(type))
let &filetype = s:DetectFileType(type, &filetype)
cal ctrlp#syntax()
cal s:SetDefTxt()
let curName = s:CurTypeName()
......@@ -59,9 +59,11 @@ fu! ctrlp#line#accept(dict)
let bufnr = str2nr(get(info, 1))
if bufnr
cal ctrlp#acceptfile(mode, bufnr, get(info, 2))
let @/ = input
call search(input, 'c')
call histadd("search", input)
if !empty(input)
let @/ = input
call search(input, 'c')
call histadd("search", input)
*ctrlp.txt* 支持模糊匹配的 文件, 缓冲区, 最近最多使用, 标签, ... 检索. v1.79
*ctrlp.txt* 支持模糊匹配的 文件, 缓冲区, 最近最多使用, 标签, ... 检索. v1.80
*CtrlP* *ControlP* *'ctrlp'* *'ctrl-p'*
# #
*ctrlp.txt* Fuzzy file, buffer, mru, tag, ... finder. v1.79
*ctrlp.txt* Fuzzy file, buffer, mru, tag, ... finder. v1.80
*CtrlP* *ControlP* *'ctrlp'* *'ctrl-p'*
# #
**Note**: Active development on neocomplete.vim has stopped. The only future
changes will be bug fixes.
Please see [Deoplete.nvim](https://github.com/Shougo/deoplete.nvim).
neocomplete is the abbreviation of "neo-completion with cache". It provides
keyword completion system by maintaining a cache of keywords in the current
buffer. neocomplete can be customized easily and has many more features than
Vim's built-in completion.
Note: If you use neovim, you should use deoplete instead.
Note: If you use neovim or Vim8+, you should use deoplete instead.
## Installation
......@@ -16,13 +22,15 @@ See [requirements](#requirements) if you aren't sure whether you have this.
1. Extract the files and put them in your Vim directory
(usually `~/.vim/` or `Program Files/Vim/vimfiles` on Windows).
2. Execute the `:NeoCompleteEnable` command or set `let g:neocomplete#enable_at_startup = 1`
in your `.vimrc` (**not** in `.gvimrc` or `_gvimrc`!)
2. Execute the `:NeoCompleteEnable` command or set `let
g:neocomplete#enable_at_startup = 1` in your `.vimrc` (**not** in `.gvimrc`
or `_gvimrc`!)
## Requirements
neocomplete requires Vim 7.3.885+ compiled with [if\_lua](http://vimdoc.sourceforge.net/htmldoc/if_lua.html).
If `:echo has("lua")` returns `1`, then you're done; otherwise, see below.
neocomplete requires Vim 7.3.885+ compiled with
[if\_lua](http://vimdoc.sourceforge.net/htmldoc/if_lua.html). If `:echo
has("lua")` returns `1`, then you're done; otherwise, see below.
### Vim builds for Windows
......@@ -40,13 +48,14 @@ file in the same directory as `gvim.exe`.
[MacVim with `if\_lua`](https://github.com/zhaocai/macvim)
Or, you can install MacVim with homebrew: (Make sure you have Xcode fully installed)
Or, you can install MacVim with homebrew: (Make sure you have Xcode fully
brew cask install macvim --with-cscope --with-lua
To install Vim (as opposed to MacVim) with homebrew:
brew install vim --with-lua
brew install vim --with-luajit
### Vim for Linux:
......@@ -58,19 +67,21 @@ Make sure you have any of these packages:
* vim-gnome
* vim-athena
Which package depends on your graphical environment (except vim-nox which is for vim with no GUI).
Which package depends on your graphical environment (except vim-nox which is
for vim with no GUI).
#### Fedora
The latest version of vim includes lua.
As of 2014-04-16 you need to [download the rpm](http://koji.fedoraproject.org/koji/packageinfo?packageID=216).
As of 2014-04-16 you need to [download the
#### Misc
Be aware, your distribution's package manager may have a fairly outdated
Vim build (for example, Ubuntu 12.04 ships Vim 7.3.429).
However, [building Vim](http://vim.wikia.com/wiki/Building_Vim) on Linux is not difficult.
Remember to specify `--with-lua` (or `--with-features=huge`).
However, [building Vim](http://vim.wikia.com/wiki/Building_Vim) on Linux is not
difficult. Remember to specify `--with-lua` (or `--with-features=huge`).
### Vim for Cygwin:
......@@ -88,7 +99,8 @@ When everything is prepared, execute these commands.
--without-x --enable-multibyte --prefix=/usr
make && make install
To check if everything was successfull enter the following `vim --version`. You should see ` +lua` in the list of features.
To check if everything was successfull enter the following `vim --version`. You
should see ` +lua` in the list of features.
## Snippets
......@@ -116,7 +116,10 @@ endfunction"}}}
function! s:complete_delay(timer) abort "{{{
let event = s:timer.event
unlet! s:timer
return s:do_auto_complete(event)
if mode() ==# 'i'
call s:do_auto_complete(event)
function! neocomplete#handler#_do_auto_complete(event) abort "{{{
......@@ -312,7 +315,11 @@ endfunction"}}}
function! s:complete_key(key) abort "{{{
call neocomplete#helper#complete_configure()
call feedkeys(a:key)
if has('patch-7.4.601')
call feedkeys(a:key, 'i')
call feedkeys(a:key)
function! s:indent_current_line() abort "{{{
......@@ -53,7 +53,7 @@ function! s:source.hooks.on_init(context) abort "{{{
call neocomplete#util#set_default_dictionary(
\'\w\{' . g:neocomplete#min_keyword_length . '\}\|\w\+[):;]\s*\w*\|[@!]')
call neocomplete#util#set_default_dictionary(
......@@ -670,7 +670,7 @@ function! s:OpenWindow(flags) abort
return 0
" Expand the Vim window to accomodate for the Tagbar window if requested
" Expand the Vim window to accommodate for the Tagbar window if requested
" and save the window positions to be able to restore them later.
if g:tagbar_expand >= 1 && !s:window_expanded &&
\ (has('gui_running') || g:tagbar_expand == 2)
......@@ -861,12 +861,6 @@ function! s:CloseWindow() abort
call s:ShrinkIfExpanded()
" The window sizes may have changed due to the shrinking happening after
" the window closing, so equalize them again.
if &equalalways
wincmd =
if s:autocommands_done && !s:statusline_in_use
autocmd! TagbarAutoCmds
let s:autocommands_done = 0
......@@ -901,6 +895,12 @@ function! s:ShrinkIfExpanded() abort
\ ' ' . s:window_pos.pre.y
" The window sizes may have changed due to the shrinking happening after
" the window closing, so equalize them again.
if &equalalways
wincmd =
" s:ZoomWindow() {{{2
......@@ -1941,7 +1941,7 @@ function! s:HighlightTag(openfolds, ...) abort
call winline()
let foldpat = '[' . g:tagbar#icon_open . g:tagbar#icon_closed . ' ]'
let pattern = '/^\%' . tagline . 'l\s*' . foldpat . '[-+# ]\zs[^( ]\+\ze/'
let pattern = '/^\%' . tagline . 'l\s*' . foldpat . '[-+# ]\?\zs[^( ]\+\ze/'
call tagbar#debug#log("Highlight pattern: '" . pattern . "'")
if hlexists('TagbarHighlight') " Safeguard in case syntax highlighting is disabled
execute 'match TagbarHighlight ' . pattern
......@@ -533,7 +533,7 @@ function! tagbar#types#uctags#init(supported_types) abort
let type_javascript.ctagstype = 'javascript'
let type_javascript.kinds = [
\ {'short': 'v', 'long': 'global variables', 'fold': 0, 'stl': 0},
\ {'short': 'C', 'long': 'contants', 'fold': 0, 'stl': 0},
\ {'short': 'C', 'long': 'constants', 'fold': 0, 'stl': 0},
\ {'short': 'c', 'long': 'classes', 'fold': 0, 'stl': 1},
\ {'short': 'g', 'long': 'generators', 'fold': 0, 'stl': 0},
\ {'short': 'p', 'long': 'properties', 'fold': 0, 'stl': 0},
......@@ -796,7 +796,7 @@ function! tagbar#types#uctags#init(supported_types) abort
\ {'short' : 'M', 'long' : 'macro', 'fold' : 0, 'stl' : 1},
\ {'short' : 'm', 'long' : 'struct field', 'fold' : 0, 'stl' : 1},
\ {'short' : 'e', 'long' : 'enum variant', 'fold' : 0, 'stl' : 1},
\ {'short' : 'F', 'long' : 'method', 'fold' : 0, 'stl' : 1}
\ {'short' : 'P', 'long' : 'method', 'fold' : 0, 'stl' : 1}
\ ]
let type_rust.sro = '::'
let type_rust.kind2scope = {
......@@ -806,7 +806,7 @@ function! tagbar#types#uctags#init(supported_types) abort
\ 'c' : 'implementation',
\ 'f' : 'function',
\ 'g' : 'enum',
\ 'F' : 'method',
\ 'P' : 'method',
\ }
let type_rust.scope2kind = {
\ 'module' : 'n',
......@@ -815,7 +815,7 @@ function! tagbar#types#uctags#init(supported_types) abort
\ 'implementation': 'c',
\ 'function' : 'f',
\ 'enum' : 'g',
\ 'method' : 'F',
\ 'method' : 'P',
\ }
let types.rust = type_rust
" Scheme {{{1
Thanks for reporting your issue. Please follow this template closely. Without
all essential info the issue may be closed as unreproducible.
Fill out the table below ----- symbols and keep it at the end of your issue
text. Please provide an answer for every line.
Please provide an explanation of the issue below this line. -->
**Expected behavior:**
**Actual behavior:**
**Steps to reproduce**
Provide a minimal viable repro case, ideally following
If this is not possible, post a minimal, complete `.vimrc`, snippet definition,
and set of keystrokes that reproduces your problem.
<!-- NOTE: contents inside arrows will be ignored. -->
- **Operating System**: <!-- e.g. Windows XP / Ubuntu 16.04 / Mac OS 10.5 -->
- **Vim Version**: <!-- first two lines of `:version` output -->
- **UltiSnips Version**: <!-- e.g. 3.1. If you're using version from git
run: `git rev-parse origin/master` -->
- **Python inside Vim**: <!-- e.g. 2.7.14 / 3.6.5. If unsure run inside vim:
`:py import sys; print(sys.version)` and
`:py3 import sys; print(sys.version)' -->
- **Docker repo/vimrc**: <!-- link to the branch containing the repro case,
or the uploaded minimal vimrc -->
language: python
sudo: required
services: docker
- 2.7
- 3.3
- 3.4
- VIM_VERSION="7.4" PYTHON_IMAGE=2.7-stretch TAG=vim_74_py2
- VIM_VERSION="8.0" PYTHON_IMAGE=2.7-stretch TAG=vim_80_py2
- VIM_VERSION="git" PYTHON_IMAGE=2.7-stretch TAG=vim_git_py2
- VIM_VERSION="7.4" PYTHON_IMAGE=3.6-stretch TAG=vim_74_py3
- VIM_VERSION="8.0" PYTHON_IMAGE=3.6-stretch TAG=vim_80_py3
- VIM_VERSION="git" PYTHON_IMAGE=3.6-stretch TAG=vim_git_py3
# Some of these commands fail transiently. We keep retrying them until they succeed.
- until sudo add-apt-repository ppa:kalakris/tmux -y; do sleep 10; done
- until sudo add-apt-repository ppa:neovim-ppa/unstable -y; do sleep 10; done
- until sudo apt-get update -qq; do sleep 10; done
- until sudo apt-get install -qq -y --force-yes tmux xclip gdb neovim git; do sleep 10; done
- ./travis_install.sh
- docker build -t ultisnips:${TAG} --build-arg PYTHON_IMAGE=${PYTHON_IMAGE} --build-arg VIM_VERSION=${VIM_VERSION} .
- ./travis_test.sh
- docker run -it ultisnips:${TAG} docker/run_tests.sh
# Contributing to UltiSnips
:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
This document will take you through the process of making your change, testing it, documenting it and sending it for review.
No new feature will be accepted without good test coverage, passing CI and proper documentation.
## Before you add a feature
UltiSnips is so rich on features that it borders on feature creep.
It is also an understaffed and undermaintained project.
Since every feature needs to be maintained forever, we are very careful about new ones.
Please create alignment before putting too much work into a novel idea.
There are several ways of doing this:
1. Open an issue to discuss your idea.
2. Open a PR with a hackish or minimal implementation, i.e. no tests and no docs.
3. Write a short (<= 1 page) design doc in a Gist or on Google Docs.
Should there be agreement that your feature idea adds enough value to offset the maintenance burden, you can go ahead and implement it, including tests and documentation.
## Testing
UltiSnips has a rigorous test suite and every new feature or bug fix is expected to come with a new test.
The overwhelming number of the > 500 test cases are integration tests.
Each test case sets up a full on-disk Vim configuration, including `.vimrc`, plugins and snippet definitions.
We then simulate a user typing out a test case by programmatically sending keys into a [tmux](https://github.com/tmux/tmux/wiki) terminal that runs Vim.
A test is a Python class in the `test` directory.
Some simple examples are in [test_Expand.py](https://github.com/SirVer/ultisnips/blob/master/test/test_Expand.py).
Each class contains at least
- a `keys` property that defines the key strokes taken,
- a `wanted` golden string that defines the expected output of the snippet, and
- a `snippets` list that defines the snippet that are in scope for the test case.
Each test types out a given set of key strokes and compares the resulting text in the Vim buffer to `wanted`.
### Running the test suite.
The basic process of running the suite is simple:
1. open a terminal and start a new tmux session in the current directory named
vim: `tmux new -s vim`. Do not type anything into the tmux session.
2. In a second terminal, run `./test_all.py`.
To filter the tests that are executed, specify a pattern to be used to match the beginning of the test name.
For instance, the following will execute all tests that start with `SimpleExpand`:
$ ./test_all.py SimpleExpand
Currently, the test suite only runs under Linux and Mac, not under Windows.
Contributions to make it work under Windows again would be very much appreciated.
#### Running using docker.
The problem with running tests on the system directly is that the user's environment can bleed into the test execution.
To avoid this problem, we strongly suggest running the tests inside of [Docker](https://www.docker.com/).
It is useful to think of Docker as a lightweight virtual machine, i.e. a way of running exactly the same OS and userland configuration on any machine.
UltiSnips comes with a [Makefile](https://github.com/SirVer/ultisnips/blob/master/Makefile) that makes the use of Docker easy.
First, build the image of the test environment (Vim 8.0, using Python 3):
$ make image_repro
Now we can launch the image in a container and run the tmux session for testing.
$ make repro
... now inside container
# tmux new -s vim
The container will have the current directory mounted under `/src/UltiSnips`.
This means all changes you make to UltiSnips' sources will directly be represented inside the container and therefore available for testing.
In a second terminal we'll use `docker run` to get another shell in the already running container.
In this shell we can then trigger the test execution:
$ make shell_in_repro
... now inside container
# ./test_all.py
## Documenting
User documentation goes into [`doc/UltiSnips.txt`](https://github.com/SirVer/ultisnips/blob/00_contributing/doc/UltiSnips.txt).
Developer documentation should go into this file.
# Reproducing Bugs
Reproducing bugs is the hardest part of getting them fixed.
UltiSnips is usually used in complex interaction with other software and plugins.
This makes reproducing issues even harder.
Here is a process of creating a minimal viable reproduction case for your particular problem.
Having this available in a bug report will increase the chances of your issue being fixed tremendously.
1. Install [Docker](https://docs.docker.com/install/). It is useful to think of Docker as a lightweight virtual machine, i.e. a way of running exactly the same OS and userland configuration on any machine.
2. Build the image using `make image_repro`.
3. Launch the image using `make repro`. This drops you into a shell where you can run `vim` to get to a vim instance configured for UltiSnips.
Now try to reproduce your issue.
Keep in mind that all your changes to the container are lost once you exit the shell.
You must edit the configuration outside the container and rebuild the image.
You can add snippets to `docker/snippets/`.
You can also copy more and more of your own `.vimrc` into `docker/docker_vimrc.vim` until your issue reproduces.
Whenever you have edited `snippets` or `docker_vimrc.vim` you need to rerun `make image_repo && make repro`.
Once you have a minimal complete repro case ready,
1. fork UltiSnips,
2. commit your changes to the Vim configuration into a branch,
3. push the branch,
4. link it in the issue.
version 3.1 (TODO: date):
version 3.1 (07-Dec-2015):
- This is the last release done by @SirVer. The new maintainer of UltiSnips
is @seletskiy. The repository remains https://github.com/SirVer/ultisnips,
so this should not affect any users. This is also the last release to be
COPY docker/install_packages.sh src/scripts/
RUN src/scripts/install_packages.sh
COPY docker/download_vim.sh src/scripts/
RUN src/scripts/download_vim.sh
COPY docker/build_vim.sh src/scripts/
RUN src/scripts/build_vim.sh
RUN pip install unidecode
COPY . /src/UltiSnips
WORKDIR /src/UltiSnips
RUN ./test_all.py --clone-plugins
FROM ultisnips:${BASE_IMAGE}
RUN curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
ADD docker/docker_vimrc.vim /root/.vimrc
RUN vim -c 'PlugInstall | qa'
ADD docker/snippets /root/.vim/UltiSnips
MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
# Test images as run on CI.
docker build -t ultisnips:$@ --build-arg PYTHON_IMAGE=2.7-stretch --build-arg VIM_VERSION=7.4 .
docker build -t ultisnips:$@ --build-arg PYTHON_IMAGE=2.7-stretch --build-arg VIM_VERSION=8.0 .
docker build -t ultisnips:$@ --build-arg PYTHON_IMAGE=2.7-stretch --build-arg VIM_VERSION=git .
docker build -t ultisnips:$@ --build-arg PYTHON_IMAGE=3.6-stretch --build-arg VIM_VERSION=7.4 .
docker build -t ultisnips:$@ --build-arg PYTHON_IMAGE=3.6-stretch --build-arg VIM_VERSION=8.0 .
docker build -t ultisnips:$@ --build-arg PYTHON_IMAGE=3.6-stretch --build-arg VIM_VERSION=git .
image_repro: image_vim_80_py3
docker build -t ultisnips:repro --build-arg BASE_IMAGE=$< -f Dockerfile.repro .
# A reproduction image that drops you into a naked environment,
# with a Vim having UltiSnips and vim-snippets configured. See
# docker/docker_vimrc.vim for the full vimrc. Need to run `make
# image_repro` before this will work.
docker run -it -v ${MAKEFILE_DIR}:/src/UltiSnips ultisnips:repro /bin/bash
# This assumes, the repro image is already running and it opens an extra shell
# inside the running container
docker exec -it $(shell docker ps -q) /bin/bash
......@@ -13,7 +13,7 @@ and is very fast.
In this demo I am editing a python file. I first expand the `#!` snippet, then
the `class` snippet. The completion menu comes from
[YouCompleteMe](https://github.com/Valloric/YouCompleteMe), UltiSnips also
integrates with [neocomplete](https://github.com/Shougo/neocomplete.vim). I can
integrates with [deoplete](https://github.com/Shougo/deoplete.nvim). I can
jump through placeholders and add text while the snippet inserts text in other
places automatically: when I add `Animal` as a base class, `__init__` gets
updated to call the base class constructor. When I add arguments to the
......@@ -35,6 +35,8 @@ function! UltiSnips#Edit(bang, ...)
let mode = 'vs'
elseif g:UltiSnipsEditSplit == 'horizontal'
let mode = 'sp'
elseif g:UltiSnipsEditSplit == 'tabdo'
let mode = 'tabedit'
elseif g:UltiSnipsEditSplit == 'context'
let mode = 'vs'
if winwidth(0) <= 2 * (&tw ? &tw : 80)
......@@ -129,7 +131,6 @@ function! UltiSnips#Anon(value, ...)
return ""
function! UltiSnips#CursorMoved()
exec g:_uspy "UltiSnips_Manager._cursor_moved()"
......@@ -145,4 +146,8 @@ endfunction
function! UltiSnips#TrackChange()
exec g:_uspy "UltiSnips_Manager._track_change()"
function! UltiSnips#RefreshSnippets()
exec g:_uspy "UltiSnips_Manager._refresh_snippets()"
" }}}
......@@ -38,7 +38,7 @@ endif
" UltiSnipsEdit will use this variable to decide if a new window
" is opened when editing. default is "normal", allowed are also
" "vertical", "horizontal", and "context".
" "tabdo", "vertical", "horizontal", and "context".
if !exists("g:UltiSnipsEditSplit")
let g:UltiSnipsEditSplit = 'normal'
......@@ -46,7 +46,7 @@ def clean_first_placeholder(snip):
# Jumper is a helper for performing jumps in UltiSnips.
if snip.tabstop == 2:
if snip.tabstop == 2 and not get_jumper_text(snip):
line = snip.buffer[snip.cursor[0]]
snip.buffer[snip.cursor[0]] = \
line[:snip.tabstops[1].start[1]-2] + \
set -o errexit
set -o verbose
cd /src/vim
if [[ $PYTHON_VERSION =~ ^2\. ]]; then
export CFLAGS="$(python-config --cflags)"
echo $CFLAGS
./configure \
--disable-nls \
--disable-sysmouse \
--disable-gpm \
--enable-gui=no \
--enable-multibyte \
--with-features=huge \
--with-tlib=ncurses \
--without-x \
$PYTHON_BUILD_CONFIG || cat $(find . -name 'config.log')
make install
call plug#begin('~/.vim/plugged')
Plug '/src/UltiSnips'
Plug 'honza/vim-snippets'
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
let g:UltiSnipsEditSplit="vertical"
call plug#end()
set -o errexit
set -o verbose
mkdir -p /src && cd /src
if [[ $VIM_VERSION == "git" ]]; then
git clone https://github.com/vim/vim
curl http://ftp.vim.org/pub/vim/unix/vim-${VIM_VERSION}.tar.bz2 -o vim.tar.bz2
tar xjf vim.tar.bz2
mv -v vim?? vim
set -o errexit
set -o verbose
apt-get update
apt-get install -y \
g++ \
tmux \
apt-get clean
#!/usr/bin/env bash
set -e
PYTHON_CMD="$(which python)"
PYTHON_VERSION=$($PYTHON_CMD -c 'import sys;print(sys.version.split()[0])')
echo "Using python from: $PYTHON_CMD Version: $PYTHON_VERSION"
echo "Using vim from: $VIM"
$VIM --version | head -n 3
set -x
tmux new -d -s vim
$PYTHON_CMD ./test_all.py \
-v \
--plugins \
--session vim \
--vim $VIM \
--interface tmux \
--expected-python-version $PYTHON_VERSION
snippet example "Repro case example"
This is a simple snippet example
......@@ -17,6 +17,15 @@ setlocal commentstring=#%s
setlocal noexpandtab
setlocal autoindent nosmartindent nocindent
" Whenever a snippets file is written, we ask UltiSnips to reload all snippet
" files. This feels like auto-updating, but is of course just an
" approximation: If files change outside of the current Vim instance, we will
" not notice.
augroup ultisnips_snippets.vim
autocmd BufWritePost <buffer> call UltiSnips#RefreshSnippets()
augroup END
" Define match words for use with matchit plugin
" http://www.vim.org/scripts/script.php?script_id=39
if exists("loaded_matchit") && !exists("b:match_words")
......@@ -75,8 +75,8 @@ class VimBuffer(object):
buf = VimBuffer() # pylint:disable=invalid-name
def toggle_opt(name, new_value):
old_value = eval('&' + name)
def option_set_to(name, new_value):
old_value = vim.eval('&' + name)
command('set {0}={1}'.format(name, new_value))
......@@ -18,7 +18,9 @@ def wrap(func):
msg = \
"""An error occured. This is either a bug in UltiSnips or a bug in a
snippet definition. If you think this is a bug, please report it to
Please read and follow:
Following is the full stack trace:
"""In memory representation of snippet definitions."""
from UltiSnips.snippet.definition.ultisnips import UltiSnipsSnippetDefinition
from UltiSnips.snippet.definition.ulti_snips import UltiSnipsSnippetDefinition
from UltiSnips.snippet.definition.snipmate import SnipMateSnippetDefinition
......@@ -13,12 +13,47 @@ from UltiSnips.compatibility import as_unicode
from UltiSnips.indent_util import IndentUtil
from UltiSnips.text import escape
from UltiSnips.text_objects import SnippetInstance
from UltiSnips.text_objects._python_code import \
SnippetUtilCursor, SnippetUtilForAction
from UltiSnips.text_objects._python_code import SnippetUtilForAction
__WHITESPACE_SPLIT = re.compile(r"\s")
class _SnippetUtilCursor(object):
def __init__(self, cursor):
self._cursor = [cursor[0] - 1, cursor[1]]
self._set = False
def preserve(self):
self._set = True
self._cursor = [
def is_set(self):
return self._set
def set(self, line, column):
self.__setitem__(0, line)
self.__setitem__(1, column)
def to_vim_cursor(self):
return (self._cursor[0] + 1, self._cursor[1])
def __getitem__(self, index):
return self._cursor[index]
def __setitem__(self, index, value):
self._set = True
self._cursor[index] = value
def __len__(self):
return 2
def __str__(self):
return str((self._cursor[0], self._cursor[1]))
def split_at_whitespace(string):
"""Like string.split(), but keeps empty words as empty words."""
return re.split(__WHITESPACE_SPLIT, string)
......@@ -124,7 +159,7 @@ class SnippetDefinition(object):
'buffer': current.buffer,
'line': current.window.cursor[0]-1,
'column': current.window.cursor[1]-1,
'cursor': SnippetUtilCursor(current.window.cursor),
'cursor': _SnippetUtilCursor(current.window.cursor),
......@@ -438,6 +473,6 @@ class SnippetDefinition(object):
last_re=self._last_re, globals=self._globals,
self.instantiate(snippet_instance, initial_text, indent)
return snippet_instance
......@@ -4,7 +4,7 @@
"""A UltiSnips snippet after parsing."""
from UltiSnips.snippet.definition._base import SnippetDefinition
from UltiSnips.snippet.parsing.ultisnips import parse_and_instantiate
from UltiSnips.snippet.parsing.ulti_snips import parse_and_instantiate
class UltiSnipsSnippetDefinition(SnippetDefinition):
......@@ -65,4 +65,3 @@ def finalize(all_tokens, seen_ts, snippet_instance):
mark = all_tokens[-1][1].end # Last token is always EndOfText
m1 = Position(mark.line, mark.col)
TabStop(snippet_instance, 0, mark, m1)
......@@ -6,5 +6,5 @@
from UltiSnips.snippet.source._base import SnippetSource
from UltiSnips.snippet.source.added import AddedSnippetsSource
from UltiSnips.snippet.source.file.snipmate import SnipMateFileSource
from UltiSnips.snippet.source.file.ultisnips import UltiSnipsFileSource, \
from UltiSnips.snippet.source.file.ulti_snips import UltiSnipsFileSource, \
find_all_snippet_files, find_snippet_files
......@@ -16,16 +16,14 @@ class SnippetSource(object):
self._snippets = defaultdict(SnippetDictionary)
self._extends = defaultdict(set)
def ensure(self, filetypes, cached):
"""Update/reload the snippets in the source when needed.
It makes sure that the snippets are not outdated.
def ensure(self, filetypes):
"""Ensures that snippets are loaded."""
def refresh(self):
"""Resets all snippets, so that they are reloaded on the next call to
def loaded(self, filetypes):
return len(self._snippets) > 0
def _get_existing_deep_extends(self, base_filetypes):
"""Helper for get all existing filetypes extended by base filetypes."""
deep_extends = self.get_deep_extends(base_filetypes)
......@@ -4,7 +4,6 @@
"""Code to provide access to UltiSnips files from disk."""
from collections import defaultdict
import hashlib
import os
from UltiSnips import _vim
......@@ -12,13 +11,6 @@ from UltiSnips import compatibility
from UltiSnips.snippet.source._base import SnippetSource
def _hash_file(path):
"""Returns a hashdigest of 'path'."""
if not os.path.isfile(path):
return False
return hashlib.sha1(open(path, 'rb').read()).hexdigest()
class SnippetSyntaxError(RuntimeError):
"""Thrown when a syntax error is found in a file."""
......@@ -29,24 +21,18 @@ class SnippetSyntaxError(RuntimeError):
class SnippetFileSource(SnippetSource):
"""Base class that abstracts away 'extends' info and file hashes."""
def __init__(self):
self._files_for_ft = defaultdict(set)
self._file_hashes = defaultdict(lambda: None)
self._ensure_cached = False
def ensure(self, filetypes, cached):
if cached and self._ensure_cached:
def ensure(self, filetypes):
for ft in self.get_deep_extends(filetypes):
if self._needs_update(ft):
self._ensure_cached = True
def refresh(self):
def _get_all_snippet_files_for(self, ft):
"""Returns a set of all files that define snippets for 'ft'."""
......@@ -59,38 +45,22 @@ class SnippetFileSource(SnippetSource):
def _needs_update(self, ft):
"""Returns true if any files for 'ft' have changed and must be
existing_files = self._get_all_snippet_files_for(ft)
if existing_files != self._files_for_ft[ft]:
self._files_for_ft[ft] = existing_files
return True
for filename in self._files_for_ft[ft]:
if _hash_file(filename) != self._file_hashes[filename]:
return True
return False
return not (ft in self._snippets)
def _load_snippets_for(self, ft):
"""Load all snippets for the given 'ft'."""
if ft in self._snippets:
del self._snippets[ft]
del self._extends[ft]
for fn in self._files_for_ft[ft]:
self._parse_snippets(ft, fn)
del self._files_for_ft[ft]
assert(ft not in self._snippets)
for fn in self._get_all_snippet_files_for(ft):
self._parse_snippets(ft, fn)
# Now load for the parents
for parent_ft in self.get_deep_extends([ft]):
if parent_ft != ft and self._needs_update(parent_ft):
def _parse_snippets(self, ft, filename):
"""Parse the 'filename' for the given 'ft' and watch it for changes in
the future."""
self._file_hashes[filename] = _hash_file(filename)
"""Parse the 'filename' for the given 'ft'."""
file_data = compatibility.open_ascii_file(filename, 'r').read()
self._snippets[ft] # Make sure the dictionary exists
for event, data in self._parse_snippet_file(file_data, filename):
if event == 'error':
msg, line_index = data