summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-09-10 14:25:25 +0200
committerBram Moolenaar <Bram@vim.org>2020-09-10 14:25:25 +0200
commita953b5cf4f291875b805262eebd361e502de8c92 (patch)
tree350a333df200988db32678ee569edd468fd3f77b
parent64e2db6dc6d7a013ff94ce302af8958cbd2704af (diff)
patch 8.2.1652: cannot translate lines in the options windowv8.2.1652
Problem: Cannot translate lines in the options window. Solution: Use the AddOption() function to split descriptions where indicated by a line break. (issue #6800)
-rw-r--r--runtime/optwin.vim64
-rw-r--r--src/version.c2
2 files changed, 38 insertions, 28 deletions
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index dd3a1e515e..ab8d35cbdb 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2020 aug 30
+" Last Change: 2020 Sep 10
" If there already is an option window, jump to that one.
let buf = bufnr('option-window')
@@ -20,7 +20,7 @@ let s:cpo_save = &cpo
set cpo&vim
" function to be called when <CR> is hit in the option-window
-fun! <SID>CR()
+func <SID>CR()
" If on a continued comment line, go back to the first comment line
let lnum = search("^[^\t]", 'bWcn')
@@ -47,10 +47,10 @@ fun! <SID>CR()
elseif match(line, '^ \=[0-9]') >= 0
exe "norm! /" . line . "\<CR>zt"
endif
-endfun
+endfunc
" function to be called when <Space> is hit in the option-window
-fun! <SID>Space()
+func <SID>Space()
let lnum = line(".")
let line = getline(lnum)
@@ -67,14 +67,14 @@ fun! <SID>Space()
endif
endif
-endfun
+endfunc
let s:local_to_window = gettext('(local to window)')
let s:local_to_buffer = gettext('(local to buffer)')
" find the window in which the option applies
" returns 0 for global option, 1 for local option, -1 for error
-fun! <SID>Find(lnum)
+func <SID>Find(lnum)
let line = getline(a:lnum - 1)
if line =~ s:local_to_window || line =~ s:local_to_buffer
let local = 1
@@ -95,10 +95,10 @@ fun! <SID>Find(lnum)
let local = -1
endif
return local
-endfun
+endfunc
" Update a "set" line in the option window
-fun! <SID>Update(lnum, line, local, thiswin)
+func <SID>Update(lnum, line, local, thiswin)
" get the new value of the option and update the option window line
if match(a:line, "=") >= 0
let name = substitute(a:line, '^ \tset \([^=]*\)=.*', '\1', "")
@@ -123,7 +123,7 @@ fun! <SID>Update(lnum, line, local, thiswin)
endif
endif
set nomodified
-endfun
+endfunc
" Reset 'title' and 'icon' to make it work faster.
" Reset 'undolevels' to avoid undo'ing until the buffer is empty.
@@ -159,35 +159,45 @@ call append(6, gettext('" Hit <Space> on a "set" line to refresh it.'))
" These functions are called often below. Keep them fast!
+" Add an option name and explanation. The text can contain "\n" characters
+" where a line break is to be inserted.
+func <SID>AddOption(name, text)
+ let lines = split(a:text, "\n")
+ call append("$", a:name .. "\t" .. lines[0])
+ for line in lines[1:]
+ call append("$", "\t" .. line)
+ endfor
+endfunc
+
" Init a local binary option
-fun! <SID>BinOptionL(name)
+func <SID>BinOptionL(name)
let val = getwinvar(winnr('#'), '&' . a:name)
call append("$", substitute(substitute(" \tset " . val . a:name . "\t" .
\!val . a:name, "0", "no", ""), "1", "", ""))
-endfun
+endfunc
" Init a global binary option
-fun! <SID>BinOptionG(name, val)
+func <SID>BinOptionG(name, val)
call append("$", substitute(substitute(" \tset " . a:val . a:name . "\t" .
\!a:val . a:name, "0", "no", ""), "1", "", ""))
-endfun
+endfunc
" Init a local string option
-fun! <SID>OptionL(name)
+func <SID>OptionL(name)
let val = escape(getwinvar(winnr('#'), '&' . a:name), " \t\\\"|")
call append("$", " \tset " . a:name . "=" . val)
-endfun
+endfunc
" Init a global string option
-fun! <SID>OptionG(name, val)
+func <SID>OptionG(name, val)
call append("$", " \tset " . a:name . "=" . escape(a:val, " \t\\\"|"))
-endfun
+endfunc
let s:idx = 1
let s:lnum = line("$")
call append("$", "")
-fun! <SID>Header(text)
+func <SID>Header(text)
let line = s:idx . " " . a:text
if s:idx < 10
let line = " " . line
@@ -198,15 +208,15 @@ fun! <SID>Header(text)
call append(s:lnum, line)
let s:idx = s:idx + 1
let s:lnum = s:lnum + 1
-endfun
+endfunc
" Get the value of 'pastetoggle'. It could be a special key.
-fun! <SID>PTvalue()
+func <SID>PTvalue()
redir @a
silent set pt
redir END
return substitute(@a, '[^=]*=\(.*\)', '\1', "")
-endfun
+endfunc
" Restore the previous value of 'cpoptions' here, it's used below.
let &cpo = s:cpo_save
@@ -240,8 +250,7 @@ call <SID>OptionG("hf", &hf)
call <SID>Header("moving around, searching and patterns")
call append("$", "whichwrap\tlist of flags specifying which commands wrap to another line")
call <SID>OptionG("ww", &ww)
-call append("$", "startofline\tmany jump commands move the cursor to the first non-blank")
-call append("$", "\tcharacter of a line")
+call <SID>AddOption("startofline", gettext("many jump commands move the cursor to the first non-blank\ncharacter of a line"))
call <SID>BinOptionG("sol", &sol)
call append("$", "paragraphs\tnroff macro names that separate paragraphs")
call <SID>OptionG("para", &para)
@@ -286,15 +295,14 @@ endif
call <SID>Header("tags")
-call append("$", "tagbsearch\tuse binary searching in tags files")
+call <SID>AddOption("tagbsearch", gettext("use binary searching in tags files"))
call <SID>BinOptionG("tbs", &tbs)
call append("$", "taglength\tnumber of significant characters in a tag name or zero")
call append("$", " \tset tl=" . &tl)
call append("$", "tags\tlist of file names to search for tags")
call append("$", "\t(global or local to buffer)")
call <SID>OptionG("tag", &tag)
-call append("$", "tagcase\thow to handle case when searching in tags files:")
-call append("$", "\t\"followic\" to follow 'ignorecase', \"ignore\" or \"match\"")
+call <SID>AddOption("tagcase", gettext("how to handle case when searching in tags files:\n\"followic\" to follow 'ignorecase', \"ignore\" or \"match\""))
call append("$", "\t(global or local to buffer)")
call <SID>OptionG("tc", &tc)
call append("$", "tagrelative\tfile names in a tags file are relative to the tags file")
@@ -1446,7 +1454,7 @@ augroup optwin
\ call <SID>unload() | delfun <SID>unload
augroup END
-fun! <SID>unload()
+func <SID>unload()
delfun <SID>CR
delfun <SID>Space
delfun <SID>Find
@@ -1457,7 +1465,7 @@ fun! <SID>unload()
delfun <SID>BinOptionG
delfun <SID>Header
au! optwin
-endfun
+endfunc
" Restore the previous value of 'title' and 'icon'.
let &title = s:old_title
diff --git a/src/version.c b/src/version.c
index 10366426cb..9159209f38 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1652,
+/**/
1651,
/**/
1650,