summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/CODEOWNERS2
-rw-r--r--README_VIM9.md2
-rw-r--r--runtime/autoload/python3complete.vim7
-rw-r--r--runtime/autoload/pythoncomplete.vim7
-rw-r--r--runtime/colors/README.txt2
-rw-r--r--runtime/defaults.vim2
-rw-r--r--runtime/doc/eval.txt6
-rw-r--r--runtime/doc/index.txt8
-rw-r--r--runtime/doc/map.txt13
-rw-r--r--runtime/doc/options.txt6
-rw-r--r--runtime/doc/repeat.txt5
-rw-r--r--runtime/doc/tags6
-rw-r--r--runtime/doc/todo.txt121
-rw-r--r--runtime/doc/version8.txt2
-rw-r--r--runtime/doc/vim9.txt50
-rw-r--r--runtime/filetype.vim2
-rw-r--r--runtime/ftplugin/falcon.vim3
-rw-r--r--runtime/ftplugin/fortran.vim12
-rw-r--r--runtime/ftplugin/python.vim42
-rw-r--r--runtime/indent/fortran.vim12
-rw-r--r--runtime/syntax/apache.vim4
-rw-r--r--runtime/syntax/asterisk.vim4
-rw-r--r--runtime/syntax/cabal.vim7
-rw-r--r--runtime/syntax/css.vim4
-rw-r--r--runtime/syntax/fortran.vim30
-rw-r--r--runtime/syntax/haskell.vim89
-rw-r--r--runtime/syntax/ia64.vim39
-rw-r--r--runtime/syntax/less.vim3
-rw-r--r--runtime/syntax/vim.vim28
-rw-r--r--runtime/syntax/xkb.vim2
30 files changed, 287 insertions, 233 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index d88e773736..caf44b56ea 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -38,6 +38,7 @@ runtime/compiler/jest.vim @dkearns
runtime/compiler/jjs.vim @dkearns
runtime/compiler/jshint.vim @dkearns
runtime/compiler/jsonlint.vim @dkearns
+runtime/compiler/lazbuild.vim @dkearns
runtime/compiler/php.vim @dkearns
runtime/compiler/rake.vim @tpope @dkearns
runtime/compiler/rhino.vim @dkearns
@@ -47,6 +48,7 @@ runtime/compiler/ruby.vim @tpope @dkearns
runtime/compiler/rubyunit.vim @dkearns
runtime/compiler/sass.vim @tpope
runtime/compiler/se.vim @dkearns
+runtime/compiler/shellcheck.vim @dkearns
runtime/compiler/stylelint.vim @dkearns
runtime/compiler/tcl.vim @dkearns
runtime/compiler/tidy.vim @dkearns
diff --git a/README_VIM9.md b/README_VIM9.md
index 1d29635459..6c2ee307c3 100644
--- a/README_VIM9.md
+++ b/README_VIM9.md
@@ -80,7 +80,7 @@ e.g. each stack item is a typeval_T. And one of the instructions is
"execute Ex command", for commands that are not compiled.
-## 2. PHASING OUT INTERFACES
+## 2. DEPRIORITIZE INTERFACES
Attempts have been made to implement functionality with built-in script
languages such as Python, Perl, Lua, Tcl and Ruby. This never gained much
diff --git a/runtime/autoload/python3complete.vim b/runtime/autoload/python3complete.vim
index f0f3aaddb3..6894bd63e1 100644
--- a/runtime/autoload/python3complete.vim
+++ b/runtime/autoload/python3complete.vim
@@ -1,7 +1,8 @@
"python3complete.vim - Omni Completion for python
-" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
+" Maintainer: <vacancy>
+" Previous Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
" Version: 0.9
-" Last Updated: 18 Jun 2009 (small fix 2015 Sep 14 from Debian)
+" Last Updated: 2020 Oct 9
"
" Roland Puntaier: this file contains adaptations for python3 and is parallel to pythoncomplete.vim
"
@@ -83,7 +84,7 @@ function! python3complete#Complete(findstart, base)
break
endif
endwhile
- execute "py3 vimpy3complete('" . cword . "', '" . a:base . "')"
+ execute "py3 vimpy3complete('" . escape(cword, "'") . "', '" . escape(a:base, "'") . "')"
return g:python3complete_completions
endif
endfunction
diff --git a/runtime/autoload/pythoncomplete.vim b/runtime/autoload/pythoncomplete.vim
index ecc36646d9..5f6fee58cc 100644
--- a/runtime/autoload/pythoncomplete.vim
+++ b/runtime/autoload/pythoncomplete.vim
@@ -1,7 +1,8 @@
"pythoncomplete.vim - Omni Completion for python
-" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
+" Maintainer: <vacancy>
+" Previous Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
" Version: 0.9
-" Last Updated: 18 Jun 2009
+" Last Updated: 2020 Oct 9
"
" Changes
" TODO:
@@ -81,7 +82,7 @@ function! pythoncomplete#Complete(findstart, base)
break
endif
endwhile
- execute "python vimcomplete('" . cword . "', '" . a:base . "')"
+ execute "python vimcomplete('" . escape(cword, "'") . "', '" . escape(a:base, "'") . "')"
return g:pythoncomplete_completions
endif
endfunction
diff --git a/runtime/colors/README.txt b/runtime/colors/README.txt
index 057bbec51f..89501e0517 100644
--- a/runtime/colors/README.txt
+++ b/runtime/colors/README.txt
@@ -67,7 +67,7 @@ You can use ":highlight" to find out the current colors. Exception: the
ctermfg and ctermbg values are numbers, which are only valid for the current
terminal. Use the color names instead. See ":help cterm-colors".
-The default color settings can be found in the source file src/syntax.c.
+The default color settings can be found in the source file src/highlight.c.
Search for "highlight_init".
If you think you have a color scheme that is good enough to be used by others,
diff --git a/runtime/defaults.vim b/runtime/defaults.vim
index c15d743c0e..f3c639bc74 100644
--- a/runtime/defaults.vim
+++ b/runtime/defaults.vim
@@ -1,7 +1,7 @@
" The default vimrc file.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last change: 2019 Oct 27
+" Last change: 2020 Sep 30
"
" This is loaded if no vimrc file was found.
" Except when Vim is run with "-u NONE" or "-C".
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index b2b16007ec..5a4376d1de 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 8.2. Last change: 2020 Sep 25
+*eval.txt* For Vim version 8.2. Last change: 2020 Oct 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -897,7 +897,7 @@ Example: >
All expressions within one level are parsed from left to right.
-expr1 *expr1* *trinary* *falsy-operator* *E109*
+expr1 *expr1* *trinary* *falsy-operator* *??* *E109*
-----
The trinary operator: expr2 ? expr1 : expr1
@@ -3503,7 +3503,7 @@ byteidxcomp({expr}, {nr}) *byteidxcomp()*
< The first and third echo result in 3 ('e' plus composing
character is 3 bytes), the second echo results in 1 ('e' is
one byte).
- Only works different from byteidx() when 'encoding' is set to
+ Only works differently from byteidx() when 'encoding' is set to
a Unicode encoding.
Can also be used as a |method|: >
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index ed6916f62e..91d22de74b 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt* For Vim version 8.2. Last change: 2020 May 31
+*index.txt* For Vim version 8.2. Last change: 2020 Oct 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -784,10 +784,10 @@ tag char note action in Normal mode ~
lines down
|gk| gk 1 like "k", but when 'wrap' on go N screen
lines up
-|gn| gn 1,2 find the next match with the last used
- search pattern and Visually select it
|gm| gm 1 go to character at middle of the screenline
|gM| gM 1 go to character at middle of the text line
+|gn| gn 1,2 find the next match with the last used
+ search pattern and Visually select it
|go| go 1 cursor to byte N in the buffer
|gp| ["x]gp 2 put the text [from register x] after the
cursor N times, leave the cursor after it
@@ -1317,6 +1317,7 @@ tag command action ~
|:filetype| :filet[ype] switch file type detection on/off
|:filter| :filt[er] filter output of following command
|:find| :fin[d] find file in 'path' and edit it
+|:final| :final declare an immutable variable in Vim9
|:finally| :fina[lly] part of a :try command
|:finish| :fini[sh] quit sourcing a Vim script
|:first| :fir[st] go to the first file in the argument list
@@ -1691,6 +1692,7 @@ tag command action ~
|:unsilent| :uns[ilent] run a command not silently
|:update| :up[date] write buffer if modified
|:vglobal| :v[global] execute commands for not matching lines
+|:var| :var variable declaration in Vim9
|:version| :ve[rsion] print version number and other info
|:verbose| :verb[ose] execute command with 'verbose' set
|:vertical| :vert[ical] make following command split vertically
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index cfd48b5a78..276ab50509 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt* For Vim version 8.2. Last change: 2020 Sep 09
+*map.txt* For Vim version 8.2. Last change: 2020 Oct 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -252,6 +252,17 @@ For abbreviations |v:char| is set to the character that was typed to trigger
the abbreviation. You can use this to decide how to expand the {lhs}. You
should not either insert or change the v:char.
+In case you want the mapping to not do anything, you can have the expression
+evaluate to an empty string. If something changed that requires Vim to
+go through the main loop (e.g. to update the display), return "\<Ignore>".
+This is similar to "nothing" but makes Vim return from the loop that waits for
+input. Example: >
+ func s:OpenPopup()
+ call popup_create(... arguments ...)
+ return "\<Ignore>"
+ endfunc
+ nnoremap <expr> <F3> <Sid>OpenPopup()
+
Be very careful about side effects! The expression is evaluated while
obtaining characters, you may very well make the command dysfunctional.
For this reason the following is blocked:
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 713f3ba3e5..88b3d2b237 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 8.2. Last change: 2020 Sep 15
+*options.txt* For Vim version 8.2. Last change: 2020 Oct 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2554,7 +2554,7 @@ A jump table for the options with a short description can be found at |Q_op|.
"x" delete each combining character on its own. When it is off (the
default) the character along with its combining characters are
deleted.
- Note: When 'delcombine' is set "xx" may work different from "2x"!
+ Note: When 'delcombine' is set "xx" may work differently from "2x"!
This is useful for Arabic, Hebrew and many other languages where one
may have combining characters overtop of base characters, and want
@@ -4682,7 +4682,7 @@ A jump table for the options with a short description can be found at |Q_op|.
characters. Example: "abc;ABC"
Example: "aA,fgh;FGH,cCdDeE"
Special characters need to be preceded with a backslash. These are
- ";", ',' and backslash itself.
+ ";", ',', '"', '|' and backslash itself.
This will allow you to activate vim actions without having to switch
back and forth between the languages. Your language characters will
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 46ff76a569..f6c96d027d 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt* For Vim version 8.2. Last change: 2020 Aug 15
+*repeat.txt* For Vim version 8.2. Last change: 2020 Oct 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -271,6 +271,9 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
directories are added to 'runtimepath'. This is
useful in your .vimrc. The plugins will then be
loaded during initialization, see |load-plugins|.
+ Note that for ftdetect scripts to be loaded
+ you will need to write `filetype plugin indent on`
+ AFTER all `packadd!` commands.
Also see |pack-add|.
{only available when compiled with |+eval|}
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 49baae69d6..5fd41c5d9a 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2447,6 +2447,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:filter various.txt /*:filter*
:fin editing.txt /*:fin*
:fina eval.txt /*:fina*
+:final vim9.txt /*:final*
:finally eval.txt /*:finally*
:find editing.txt /*:find*
:fini repeat.txt /*:fini*
@@ -3371,6 +3372,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:up editing.txt /*:up*
:update editing.txt /*:update*
:v repeat.txt /*:v*
+:var vim9.txt /*:var*
:ve various.txt /*:ve*
:ver various.txt /*:ver*
:verb various.txt /*:verb*
@@ -3689,6 +3691,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
>where repeat.txt /*>where*
? pattern.txt /*?*
?<CR> pattern.txt /*?<CR>*
+?? eval.txt /*??*
@ repeat.txt /*@*
@/ change.txt /*@\/*
@: repeat.txt /*@:*
@@ -6328,6 +6331,8 @@ extensions-improvements todo.txt /*extensions-improvements*
f motion.txt /*f*
false vim9.txt /*false*
false-variable eval.txt /*false-variable*
+falsy eval.txt /*falsy*
+falsy-operator eval.txt /*falsy-operator*
faq intro.txt /*faq*
farsi farsi.txt /*farsi*
farsi.txt farsi.txt /*farsi.txt*
@@ -9656,6 +9661,7 @@ trojan-horse starting.txt /*trojan-horse*
true vim9.txt /*true*
true-variable eval.txt /*true-variable*
trunc() eval.txt /*trunc()*
+truthy eval.txt /*truthy*
try-conditionals eval.txt /*try-conditionals*
try-echoerr eval.txt /*try-echoerr*
try-finally eval.txt /*try-finally*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index d47eccabe8..9795a0fa57 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 8.2. Last change: 2020 Sep 28
+*todo.txt* For Vim version 8.2. Last change: 2020 Oct 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -38,26 +38,13 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Popup windows: don't send any keys from ":normal" to popup filter?
- Can drop ex_normal_busy_done then.
-
-Move Test_let_* from test_vim9_script to test_vim9_assign
-
-Modifiers in GTK: issue #6457. CTRL-6 should work, like CTRL-@ and CTRL-_.
-
-3 October: remove using :let in Vim9 script.
-
-Go back to not using string/list/dict as falsy/thruthy boolean?
- or only make "||" and "&&" result in a boolean?
Making everything work:
+- If a function is defined in a block it may need to keep the block-locals,
+ like a compiled closure.
- Fix memory leaks in test_vim9_assign, remove "if 0"
- Fix memory leaks in test_vim9_script
-- At the Vim9 script level, keep script variables local to the block they are
- declared in, like in Javascript (using :let).
- -> Need to remember what variables were declared and delete them when
- leaving the block.
- -> if a function is defined it may need to keep the block-locals
- Then Implement { } block at the script level.
+- Closure arguments should be more strict, like any function call?
+- Remove v:disallow_let
- Recognize call to assert_fails() and execute it in the function context?
Won't work if the command itself fails, not an expression failure:
assert_fails("unknown", "E99:")
@@ -70,10 +57,15 @@ Making everything work:
did_catch = true
endtry
assert_true('did_catch')
- Add a new command,
+ Add a new command perhaps:
assertfail
unknown
endassertfail E99:.*unknown
+- Make map() give an error if the resulting type is wrong.
+ Add mapnew() or mapcopy() to create a new List/Dict for the result, which
+ can have a different value type.
+- Error message for "'yes && 0" is "using String as a Number", should be "using
+ String as a Bool".
- Run the same tests in :def and Vim9 script, like in Test_expr7_not()
- In autocmd: use legacy syntax, not whatever the current script uses?
- need to check type when a declaration specifies a type: #6507
@@ -86,9 +78,6 @@ Making everything work:
Also "list[0] += value". test in Test_assign_dict_unknown_type().
- ":put" with ISN_PUT does not handle range correctly, e.g. ":$-2put".
Add command to parse range at runtime?
-- Make map() give an error if the resulting type is wrong.
- Add mapnew() to create a new List/Dict for the result, which can have a
- different value type.
- When defining an :autocmd or :command, how to specify using Vim9 syntax?
- always do this when defined in a Vim9 script
- add some command modifier.
@@ -183,6 +172,11 @@ Further improvements:
- compile "expr" and "call" expression of a channel in channel_exe_cmd()?
Popup windows:
+- Add a flag to make a popup window focusable?
+ CTRL-W P cycle over any preview window or focusable popup, end up back in
+ current window.
+ ? - switch between current window and all popup windows
+ Esc in popup window goes back to previous current window
- Cursor not updated before a redraw, making it jump. (#5943)
- Add a termcap entry for changing the cursor when it goes under the popup and
back. like t_SI and t_EI (t_SU and t_EU, where "U" means under?)
@@ -291,6 +285,11 @@ Terminal emulator window:
Error numbers available: E653
+Mapping with partial match not executed properly in GTK. (Ingo Karkat, #7082)
+
+Patch for Template string: #4634
+Have another look at the implementation.
+
Patch to implement the vimtutor with a plugin: #6414
Was originally written by Felipe Morales.
@@ -303,6 +302,16 @@ with 'termguicolors'. #1740
Patch for blockwise paste reporting changes: #6660.
+Add an option to not fetch terminal codes in xterm, to avoid flicker when t_Co
+changes.
+
+Add an option to start_timer() to return from the input loop with K_IGNORE.
+This is useful e.g. when a popup was created that disables mappings, we need
+to return from vgetc() to make this happen. #7011
+
+Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
+Scroll doesn't work correctly, why?
+
Expanding <mods> should put the tab number from cmdmod.tab before "tab".
Any way to convert "$" back by using a special value? (#6901)
@@ -331,15 +340,16 @@ autocommands for the buffer lifecycle:
BufIsRenamed (after buffer ID gets another name)
The buffer list and windows are locked, no changes possible
-Make it possible to map (console and GUI): #6457
- <C-[> 0x27 or is this <Esc> ?
- <C-\> 0x28
- <C-]> 0x29
- <C-^> 0x30
- <C-_> 0x31
+Matchparen doesn't remove highlight after undo. (#7054)
+Is OK when syntax HL is active.
-Patch for Template string: #4634
-Have another look at the implementation.
+Currently Del can be used to delete the last character of a typed count.
+Can it also be used to delete an incomplete Normal mode command? (#7096)
+After an operator: should work. After "a" or "i" for text objects: should
+work.
+
+Using "au!" after "filetype on" is a bit slow. Can the matching of
+autocommands be made faster? (#7056)
Valgrind warns for uninitialized values in f_term_dumpwrite().
@@ -538,6 +548,7 @@ Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
13, #2910) Can't reproduce?
Display messed up with matchparen, wrapping and scrolling. (#5638)
+Screen update bug related to matchparen. (Chris Heath, 2017 Mar 4, #1532)
When getting a focus event halfway a mapping this aborts the mapping. E.g.
when "qq" is mapped and after the first "q" the mouse is moved outside of the
@@ -1263,8 +1274,6 @@ GTK: When adding a timer from 'balloonexpr' it won't fire, because
g_main_context_iteration() doesn't return. Need to trigger an event when the
timer expires.
-Screen update bug related to matchparen. (Chris Heath, 2017 Mar 4, #1532)
-
Rule to use "^" for statusline does not work if a space is defined with
highlighting for both stl and stlnc. Patch by Ken Hamada (itchyny, 2016 Dec 11)
@@ -1497,8 +1506,6 @@ Have a way to get the call stack, in a function and from an exception.
Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)
-Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
-
Patch to improve map documentation. Issue #799.
We can use '. to go to the last change in the current buffer, but how about
@@ -1718,8 +1725,6 @@ Extended file attributes lost on write (backupcopy=no). Issue 306.
Patch to add :lockjumps. (Carlo Baldassi, 2015 May 25)
OK to not block marks?
-Mixup of highlighting when there is a match and SpellBad. (ZyX, 2015 Jan 1)
-
Patch on Issue 72: 'autochdir' causes problems for :vimgrep.
When two SIGWINCH arrive very quickly, the second one may be lost.
@@ -1786,14 +1791,6 @@ arguments.
Problem with transparent and matchgroup. Issue #475
-Spell files use a latin single quote. Unicode also has another single quote:
-0x2019. (Ron Aaron, 2014 Apr 4)
-New OpenOffice spell files support this with ICONV. But they are not
-compatible with Vim spell files. The old files can no longer be downloaded.
-
-Spell checking: Add a feature to only consider two spaces after a dot to start
-a new sentence. Don't give the capitalization error when there is one space.
-
Idea: For a window in the middle (has window above and below it), use
right-mouse-drag on the status line to move a window up/down without changing
its height? It's like dragging the status bar above it at the same time.
@@ -2468,9 +2465,6 @@ Don't load macmap.vim on startup, turn it into a plugin. (Ron Aaron,
Add "no_hlsearch" to winsaveview().
-Cursorline highlighting combines with Search ('hlsearch') but not with
-SpellBad. (Jim Karsten, 2009 Mar 18)
-
When 'foldmethod' is "indent", adding an empty line below a fold and then
indented text, creates a new fold instead of joining it with the previous one.
(Evan Laforge, 2009 Oct 17)
@@ -2977,12 +2971,6 @@ the Visual area. Can this be fixed? (James Vega, 2006 Sept 15)
GUI: When combining fg en bg make sure they are not equal.
-Spell checking: Add a way to specify punctuation characters. Add the
-superscript numbers by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.
-
-Spell checking in popup menu: If the only problem is the case of the first
-character, don't offer "ignore" and "add to word list".
-
Use different pt_br dictionary for spell checking. (Jackson A. Aquino, 2006
Jun 5)
@@ -2996,10 +2984,6 @@ Jul 22)
There should be something about spell checking in the user manual.
-Spell menu: When using the Popup menu to select a replacement word,
-":spellrepeat" doesn't work. SpellReplace() uses setline(). Can it use "z="
-somehow? Or use a new function.
-
Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
Add an option to specify the character to use when a double-width character is
@@ -3283,6 +3267,29 @@ Better 'rightleft' or BIDI support:
- Minimal Vi with bidi support: https://github.com/aligrudi/neatvi
By Ali Gholami Rudi, also worked on arabic.c
+
+Spell checking:
+- When 'cursorline' is set and the first word should have SpellCap
+ highlighting, redrawing the line removes it when moving the cursor away
+ from the line. (#7085) Would need to inspect the end of the previous line
+ and update "capcol_lnum" and "cap_col".
+- Mixup of highlighting when there is a match and SpellBad. (ZyX, 2015 Jan 1)
+- Spell files use a latin single quote. Unicode also has another single
+ quote: 0x2019. (Ron Aaron, 2014 Apr 4)
+ New OpenOffice spell files support this with ICONV. But they are not
+ compatible with Vim spell files. The old files can no longer be
+ downloaded.
+- Add a feature to only consider two spaces after a dot to start a new
+ sentence. Don't give the capitalization error when there is one space.
+- Add a way to specify punctuation characters. Add the superscript numbers
+ by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.
+- In popup menu: If the only problem is the case of the first character,
+ don't offer "ignore" and "add to word list".
+- Spell menu: When using the Popup menu to select a replacement word,
+ ":spellrepeat" doesn't work. SpellReplace() uses setline(). Can it use
+ "z=" somehow? Or use a new function.
+
+
Quickfix/Location List:
- Window size is wrong when using quickfix window. (Lifepillar, 2018 Aug 24,
#2999)
diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt
index 6192c237ed..431b9cd47e 100644
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -48515,7 +48515,7 @@ Solution: Recognize true and false.
Files: src/eval.c, src/testdir/test_vim9_expr.vim
Patch 8.2.1205
-Problem: Vim9: && and || work different when not compiled.
+Problem: Vim9: && and || work differently when not compiled.
Solution: Keep the value.
Files: src/eval.c, src/testdir/test_vim9_expr.vim
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index feb889dad1..fdbcefcd96 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt* For Vim version 8.2. Last change: 2020 Sep 26
+*vim9.txt* For Vim version 8.2. Last change: 2020 Oct 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -164,12 +164,12 @@ the "name#" prefix is sufficient. >
When using `:function` or `:def` to specify a nested function inside a `:def`
function, this nested function is local to the code block it is defined in.
-In a `:def` function it is not possible to define a script-local function. it
+In a `:def` function it is not possible to define a script-local function. It
is possible to define a global function by using the "g:" prefix.
When referring to a function and no "s:" or "g:" prefix is used, Vim will
search for the function:
-- in the function scope
+- in the function scope, in block scopes
- in the script scope, possibly imported
- in the list of global functions
However, it is recommended to always use "g:" to refer to a global function
@@ -1140,7 +1140,7 @@ Two alternatives were considered:
def Func(arg1 number, arg2 string) bool
The first is more familiar for anyone used to C or Java. The second one
-doesn't really has an advantage over the first, so let's discard the second.
+doesn't really have an advantage over the first, so let's discard the second.
Since we use type inference the type can be left out when it can be inferred
from the value. This means that after `var` we don't know if a type or a name
@@ -1155,19 +1155,35 @@ declaration.
Expressions ~
-Expression evaluation was already close to what JavaScript and other languages
-are doing. Some details are unexpected and can be fixed. For example how the
-|| and && operators work. Legacy Vim script: >
- var value = 44
- ...
- var result = value || 0 # result == 1
-
-Vim9 script works like JavaScript/TypeScript, keep the value: >
- var value = 44
- ...
- var result = value || 0 # result == 44
-
-TODO: the semantics of || and && need to be reconsidered.
+Expression evaluation was already close to what other languages are doing.
+Some details are unexpected and can be improved. For example a boolean
+condition would accept a string, convert it to a number and check if the
+number is non-zero. This is unexpected and often leads to mistakes, since
+text not starting with a number would be converted to zero, which is
+considered false. Thus a string would not give an error and be considered
+false if it doesn't start with a number. That is confusing.
+
+In Vim9 type checking is more strict to avoid mistakes. Where a condition is
+used, e.g. with the `:if` command and the `||` operator, only boolean-like
+values are accepted:
+ true: `true`, `v:true`, `1`, `0 < 9`
+ false: `false`, `v:false`, `0`, `0 > 9`
+Note that the number zero is false and the number one is true. This is more
+persmissive than most other languages. It was done because many builtin
+functions return these values.
+
+If you have any type of value and want to use it as a boolean, use the `!!`
+operator:
+ true: !`!'text'`, `!![99]`, `!!{'x': 1}`, `!!99`
+ false: `!!''`, `!![]`, `!!{}`
+
+From a language like JavaScript we have this handy construct: >
+ GetName() || 'unknown'
+However, this conflicts with only allowing a boolean for a condition.
+Therefore the "??" operator was added: >
+ GetName() ?? 'unknown'
+Here you can explicitly express your intention to use the value as-is and not
+result in a boolean. This is called the |falsy-operator|.
Import and Export ~
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index b647e25a42..c3fb19e741 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2020 Sep 28
+" Last Change: 2020 Sep 30
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
diff --git a/runtime/ftplugin/falcon.vim b/runtime/ftplugin/falcon.vim
index 4fc135b4a1..affca38481 100644
--- a/runtime/ftplugin/falcon.vim
+++ b/runtime/ftplugin/falcon.vim
@@ -3,6 +3,7 @@
" Author: Steven Oliver <oliver.steven@gmail.com>
" Copyright: Copyright (c) 2009-2013 Steven Oliver
" License: You may redistribute this under the same terms as Vim itself
+" Last Update: 2020 Oct 10
" --------------------------------------------------------------------------
" Only do this when not done yet for this buffer
@@ -14,7 +15,7 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
-setlocal softtabstop=4 shiftwidth=4 fileencoding=utf-8
+setlocal softtabstop=4 shiftwidth=4
setlocal suffixesadd=.fal,.ftd
" Matchit support
diff --git a/runtime/ftplugin/fortran.vim b/runtime/ftplugin/fortran.vim
index 385f1557de..b9ba3c4722 100644
--- a/runtime/ftplugin/fortran.vim
+++ b/runtime/ftplugin/fortran.vim
@@ -1,13 +1,13 @@
" Vim settings file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, 77, 66)
-" Version: 0.50
-" Last Change: 2020 Apr 20
-" Patched By: Eisuke Kawashima
+" Version: (v52) 2020 October 07
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-plugin from Vim
" Credits:
-" Useful suggestions were made by Stefano Zacchiroli, Hendrik Merx, Ben
-" Fritz, and David Barnett.
+" Version 0.1 was created in September 2000 by Ajit Thakkar.
+" Since then, useful suggestions and contributions have been made, in order, by:
+" Stefano Zacchiroli, Hendrik Merx, Ben Fritz, David Barnett, Eisuke Kawashima,
+" and Doug Kearns.
" Only do these settings when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -119,7 +119,7 @@ if !exists("b:match_words")
endif
" File filters for :browse e
-if has("gui_win32") && !exists("b:browsefilter")
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Fortran Files (*.f;*.for;*.f77;*.f90;*.f95;*.f03;*.f08;*.fpp;*.ftn)\t*.f;*.for;*.f77;*.f90;*.f95;*.f03;*.f08;*.fpp;*.ftn\n" .
\ "All Files (*.*)\t*.*\n"
endif
diff --git a/runtime/ftplugin/python.vim b/runtime/ftplugin/python.vim
index 64c1a87a69..000ddf52a3 100644
--- a/runtime/ftplugin/python.vim
+++ b/