mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 03:18:16 +00:00
Merge pull request #22429 from bfredl/hkmap
feat(edit)!: remove old c implementation of hebrew keymap
This commit is contained in:
@@ -30,17 +30,10 @@ Details
|
|||||||
+ 'rightleft' ('rl') sets window orientation to right-to-left. This means
|
+ 'rightleft' ('rl') sets window orientation to right-to-left. This means
|
||||||
that the logical text 'ABC' will be displayed as 'CBA', and will start
|
that the logical text 'ABC' will be displayed as 'CBA', and will start
|
||||||
drawing at the right edge of the window, not the left edge.
|
drawing at the right edge of the window, not the left edge.
|
||||||
+ 'hkmap' ('hk') sets keyboard mapping to Hebrew, in insert/replace modes.
|
+ 'keymap' ('kmp') sets keyboard mapping. use values "hebrew" or "heprewp"
|
||||||
+ 'aleph' ('al'), numeric, holds the decimal code of Aleph, for keyboard
|
(the latter option enables phonetic mapping)
|
||||||
mapping.
|
+ 'delcombine' ('deco'), boolean, allows one to remove the niqud or
|
||||||
+ 'hkmapp' ('hkp') sets keyboard mapping to "phonetic hebrew"
|
te`amim by pressing 'x' on a character (with associated niqud).
|
||||||
|
|
||||||
NOTE: these three ('hkmap', 'hkmapp' and 'aleph') are obsolete. You should
|
|
||||||
use ":set keymap=hebrewp" instead.
|
|
||||||
|
|
||||||
+ 'delcombine' ('deco'), boolean, if editing UTF-8 encoded Hebrew, allows
|
|
||||||
one to remove the niqud or te`amim by pressing 'x' on a character (with
|
|
||||||
associated niqud).
|
|
||||||
|
|
||||||
+ 'rightleftcmd' ('rlc') makes the command-prompt for searches show up on
|
+ 'rightleftcmd' ('rlc') makes the command-prompt for searches show up on
|
||||||
the right side. It only takes effect if the window is 'rightleft'.
|
the right side. It only takes effect if the window is 'rightleft'.
|
||||||
@@ -62,10 +55,10 @@ Details
|
|||||||
|
|
||||||
+ CTRL-_ in insert/replace modes toggles 'revins' and 'hkmap' as follows:
|
+ CTRL-_ in insert/replace modes toggles 'revins' and 'hkmap' as follows:
|
||||||
|
|
||||||
When in rightleft window, 'revins' and 'nohkmap' are toggled, since
|
When in rightleft window, 'revins' is toggled, since
|
||||||
English will likely be inserted in this case.
|
English will likely be inserted in this case.
|
||||||
|
|
||||||
When in norightleft window, 'revins' 'hkmap' are toggled, since Hebrew
|
When in norightleft window, 'revins' is toggled, since Hebrew
|
||||||
will likely be inserted in this case.
|
will likely be inserted in this case.
|
||||||
|
|
||||||
CTRL-_ moves the cursor to the end of the typed text.
|
CTRL-_ moves the cursor to the end of the typed text.
|
||||||
|
@@ -221,11 +221,11 @@ CTRL-Y Insert the character which is above the cursor.
|
|||||||
able to copy characters from a long line.
|
able to copy characters from a long line.
|
||||||
|
|
||||||
*i_CTRL-_*
|
*i_CTRL-_*
|
||||||
CTRL-_ Switch between languages, as follows:
|
CTRL-_ Switch between insert direction, by toggling 'revins', as follows:
|
||||||
- When in a rightleft window, revins and nohkmap are toggled,
|
- When in a rightleft window, 'revins' is toggled,
|
||||||
since English will likely be inserted in this case.
|
since English will likely be inserted in this case.
|
||||||
- When in a norightleft window, revins and hkmap are toggled,
|
- When in a norightleft window, 'revins' is toggled,
|
||||||
since Hebrew will likely be inserted in this case.
|
since a rightleft language will likely be inserted in this case.
|
||||||
|
|
||||||
CTRL-_ moves the cursor to the end of the typed text.
|
CTRL-_ moves the cursor to the end of the typed text.
|
||||||
|
|
||||||
|
@@ -216,6 +216,8 @@ The following deprecated functions or APIs were removed.
|
|||||||
changes need to be contributed there first.)
|
changes need to be contributed there first.)
|
||||||
See https://github.com/neovim/neovim/pull/20674.
|
See https://github.com/neovim/neovim/pull/20674.
|
||||||
|
|
||||||
|
- 'hkmap', 'hkmapp' and 'aleph' options were removed. Use 'keymap' option instead.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
DEPRECATIONS *news-deprecations*
|
DEPRECATIONS *news-deprecations*
|
||||||
|
|
||||||
|
@@ -575,16 +575,6 @@ supported use something like this: >
|
|||||||
*E355*
|
*E355*
|
||||||
A jump table for the options with a short description can be found at |Q_op|.
|
A jump table for the options with a short description can be found at |Q_op|.
|
||||||
|
|
||||||
*'aleph'* *'al'* *aleph* *Aleph*
|
|
||||||
'aleph' 'al' number (default 224)
|
|
||||||
global
|
|
||||||
The ASCII code for the first letter of the Hebrew alphabet. The
|
|
||||||
routine that maps the keyboard in Hebrew mode, both in Insert mode
|
|
||||||
(when hkmap is set) and on the command-line (when hitting CTRL-_)
|
|
||||||
outputs the Hebrew characters in the range [aleph..aleph+26].
|
|
||||||
aleph=128 applies to PC code, and aleph=224 applies to ISO 8859-8.
|
|
||||||
See |rileft.txt|.
|
|
||||||
|
|
||||||
*'allowrevins'* *'ari'* *'noallowrevins'* *'noari'*
|
*'allowrevins'* *'ari'* *'noallowrevins'* *'noari'*
|
||||||
'allowrevins' 'ari' boolean (default off)
|
'allowrevins' 'ari' boolean (default off)
|
||||||
global
|
global
|
||||||
@@ -3195,20 +3185,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
each of these histories (see |cmdline-editing|).
|
each of these histories (see |cmdline-editing|).
|
||||||
The maximum value is 10000.
|
The maximum value is 10000.
|
||||||
|
|
||||||
*'hkmap'* *'hk'* *'nohkmap'* *'nohk'*
|
|
||||||
'hkmap' 'hk' boolean (default off)
|
|
||||||
global
|
|
||||||
When on, the keyboard is mapped for the Hebrew character set.
|
|
||||||
Normally you would set 'allowrevins' and use CTRL-_ in insert mode to
|
|
||||||
toggle this option. See |rileft.txt|.
|
|
||||||
|
|
||||||
*'hkmapp'* *'hkp'* *'nohkmapp'* *'nohkp'*
|
|
||||||
'hkmapp' 'hkp' boolean (default off)
|
|
||||||
global
|
|
||||||
When on, phonetic keyboard mapping is used. 'hkmap' must also be on.
|
|
||||||
This is useful if you have a non-Hebrew keyboard.
|
|
||||||
See |rileft.txt|.
|
|
||||||
|
|
||||||
*'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'*
|
*'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'*
|
||||||
'hlsearch' 'hls' boolean (default on)
|
'hlsearch' 'hls' boolean (default on)
|
||||||
global
|
global
|
||||||
|
@@ -258,7 +258,7 @@ argument.
|
|||||||
-A Arabic mode. Sets the 'arabic' option on.
|
-A Arabic mode. Sets the 'arabic' option on.
|
||||||
|
|
||||||
*-H*
|
*-H*
|
||||||
-H Hebrew mode. Sets the 'hkmap' and 'rightleft' options on.
|
-H Hebrew mode. Sets the 'rightleft' option on and 'keymap' to "hebrew"
|
||||||
|
|
||||||
*-V* *verbose*
|
*-V* *verbose*
|
||||||
-V[N] Verbose. Sets the 'verbose' option to [N] (default: 10).
|
-V[N] Verbose. Sets the 'verbose' option to [N] (default: 10).
|
||||||
|
@@ -594,6 +594,7 @@ Highlight groups:
|
|||||||
<
|
<
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
*'aleph'* *'al'*
|
||||||
antialias
|
antialias
|
||||||
*'balloondelay'* *'bdlay'*
|
*'balloondelay'* *'bdlay'*
|
||||||
*'ballooneval'* *'beval'* *'noballooneval'* *'nobeval'*
|
*'ballooneval'* *'beval'* *'noballooneval'* *'nobeval'*
|
||||||
@@ -617,6 +618,9 @@ Options:
|
|||||||
*'guifontset'* *'gfs'* (Use 'guifont' instead.)
|
*'guifontset'* *'gfs'* (Use 'guifont' instead.)
|
||||||
*'guipty'* (Nvim uses pipes and PTYs consistently on all platforms.)
|
*'guipty'* (Nvim uses pipes and PTYs consistently on all platforms.)
|
||||||
'highlight' (Names of builtin |highlight-groups| cannot be changed.)
|
'highlight' (Names of builtin |highlight-groups| cannot be changed.)
|
||||||
|
*'hkmap'* *'hk'* use `set keymap=hebrew` instead.
|
||||||
|
*'hkmapp'* *'hkp'* use `set keymap=hebrewp` instead.
|
||||||
|
|
||||||
*'imactivatefunc'* *'imaf'*
|
*'imactivatefunc'* *'imaf'*
|
||||||
*'imactivatekey'* *'imak'*
|
*'imactivatekey'* *'imak'*
|
||||||
*'imstatusfunc'* *'imsf'*
|
*'imstatusfunc'* *'imsf'*
|
||||||
|
105
src/nvim/edit.c
105
src/nvim/edit.c
@@ -523,10 +523,6 @@ static int insert_execute(VimState *state, int key)
|
|||||||
did_cursorhold = true;
|
did_cursorhold = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p_hkmap && KeyTyped) {
|
|
||||||
s->c = hkmap(s->c); // Hebrew mode mapping
|
|
||||||
}
|
|
||||||
|
|
||||||
// Special handling of keys while the popup menu is visible or wanted
|
// Special handling of keys while the popup menu is visible or wanted
|
||||||
// and the cursor is still in the completed word. Only when there is
|
// and the cursor is still in the completed word. Only when there is
|
||||||
// a match, skip this when no matches were found.
|
// a match, skip this when no matches were found.
|
||||||
@@ -2140,9 +2136,6 @@ void insertchar(int c, int flags, int second_indent)
|
|||||||
|| (virtcol += byte2cells((uint8_t)buf[i - 1])) < (colnr_T)textwidth)
|
|| (virtcol += byte2cells((uint8_t)buf[i - 1])) < (colnr_T)textwidth)
|
||||||
&& !(!no_abbr && !vim_iswordc(c) && vim_iswordc((uint8_t)buf[i - 1]))) {
|
&& !(!no_abbr && !vim_iswordc(c) && vim_iswordc((uint8_t)buf[i - 1]))) {
|
||||||
c = vgetc();
|
c = vgetc();
|
||||||
if (p_hkmap && KeyTyped) {
|
|
||||||
c = hkmap(c); // Hebrew mode mapping
|
|
||||||
}
|
|
||||||
buf[i++] = (char)c;
|
buf[i++] = (char)c;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3212,101 +3205,6 @@ bool in_cinkeys(int keytyped, int when, bool line_is_empty)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Map Hebrew keyboard when in hkmap mode.
|
|
||||||
int hkmap(int c)
|
|
||||||
FUNC_ATTR_PURE
|
|
||||||
{
|
|
||||||
if (p_hkmapp) { // phonetic mapping, by Ilya Dogolazky
|
|
||||||
enum {
|
|
||||||
hALEF = 0, BET, GIMEL, DALET, HEI, VAV, ZAIN, HET, TET, IUD,
|
|
||||||
KAFsofit, hKAF, LAMED, MEMsofit, MEM, NUNsofit, NUN, SAMEH, AIN,
|
|
||||||
PEIsofit, PEI, ZADIsofit, ZADI, KOF, RESH, hSHIN, TAV,
|
|
||||||
};
|
|
||||||
static char_u map[26] = {
|
|
||||||
(char_u)hALEF, // a
|
|
||||||
(char_u)BET, // b
|
|
||||||
(char_u)hKAF, // c
|
|
||||||
(char_u)DALET, // d
|
|
||||||
(char_u) - 1, // e
|
|
||||||
(char_u)PEIsofit, // f
|
|
||||||
(char_u)GIMEL, // g
|
|
||||||
(char_u)HEI, // h
|
|
||||||
(char_u)IUD, // i
|
|
||||||
(char_u)HET, // j
|
|
||||||
(char_u)KOF, // k
|
|
||||||
(char_u)LAMED, // l
|
|
||||||
(char_u)MEM, // m
|
|
||||||
(char_u)NUN, // n
|
|
||||||
(char_u)SAMEH, // o
|
|
||||||
(char_u)PEI, // p
|
|
||||||
(char_u) - 1, // q
|
|
||||||
(char_u)RESH, // r
|
|
||||||
(char_u)ZAIN, // s
|
|
||||||
(char_u)TAV, // t
|
|
||||||
(char_u)TET, // u
|
|
||||||
(char_u)VAV, // v
|
|
||||||
(char_u)hSHIN, // w
|
|
||||||
(char_u) - 1, // x
|
|
||||||
(char_u)AIN, // y
|
|
||||||
(char_u)ZADI, // z
|
|
||||||
};
|
|
||||||
|
|
||||||
if (c == 'N' || c == 'M' || c == 'P' || c == 'C' || c == 'Z') {
|
|
||||||
return (int)(map[CHAR_ORD(c)] - 1 + p_aleph);
|
|
||||||
} else if (c == 'x') { // '-1'='sofit'
|
|
||||||
return 'X';
|
|
||||||
} else if (c == 'q') {
|
|
||||||
return '\''; // {geresh}={'}
|
|
||||||
} else if (c == 246) {
|
|
||||||
return ' '; // \"o --> ' ' for a german keyboard
|
|
||||||
} else if (c == 228) {
|
|
||||||
return ' '; // \"a --> ' ' -- / --
|
|
||||||
} else if (c == 252) {
|
|
||||||
return ' '; // \"u --> ' ' -- / --
|
|
||||||
} else if (c >= 'a' && c <= 'z') {
|
|
||||||
// NOTE: islower() does not do the right thing for us on Linux so we
|
|
||||||
// do this the same was as 5.7 and previous, so it works correctly on
|
|
||||||
// all systems. Specifically, the e.g. Delete and Arrow keys are
|
|
||||||
// munged and won't work if e.g. searching for Hebrew text.
|
|
||||||
return (int)(map[CHAR_ORD_LOW(c)] + p_aleph);
|
|
||||||
} else {
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
switch (c) {
|
|
||||||
case '`':
|
|
||||||
return ';';
|
|
||||||
case '/':
|
|
||||||
return '.';
|
|
||||||
case '\'':
|
|
||||||
return ',';
|
|
||||||
case 'q':
|
|
||||||
return '/';
|
|
||||||
case 'w':
|
|
||||||
return '\'';
|
|
||||||
|
|
||||||
// Hebrew letters - set offset from 'a'
|
|
||||||
case ',':
|
|
||||||
c = '{'; break;
|
|
||||||
case '.':
|
|
||||||
c = 'v'; break;
|
|
||||||
case ';':
|
|
||||||
c = 't'; break;
|
|
||||||
default: {
|
|
||||||
static char_u str[] = "zqbcxlsjphmkwonu ydafe rig";
|
|
||||||
|
|
||||||
if (c < 'a' || c > 'z') {
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
c = str[CHAR_ORD_LOW(c)];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (int)(CHAR_ORD_LOW(c) + p_aleph);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ins_reg(void)
|
static void ins_reg(void)
|
||||||
{
|
{
|
||||||
bool need_redraw = false;
|
bool need_redraw = false;
|
||||||
@@ -3581,7 +3479,7 @@ static bool ins_esc(long *count, int cmdchar, bool nomove)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Toggle language: hkmap and revins_on.
|
// Toggle language: revins_on.
|
||||||
// Move to end of reverse inserted text.
|
// Move to end of reverse inserted text.
|
||||||
static void ins_ctrl_(void)
|
static void ins_ctrl_(void)
|
||||||
{
|
{
|
||||||
@@ -3600,7 +3498,6 @@ static void ins_ctrl_(void)
|
|||||||
} else {
|
} else {
|
||||||
revins_scol = -1;
|
revins_scol = -1;
|
||||||
}
|
}
|
||||||
p_hkmap = curwin->w_p_rl ^ p_ri; // be consistent!
|
|
||||||
showmode();
|
showmode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -189,8 +189,6 @@ static int cedit_key = -1; ///< key value of 'cedit' option
|
|||||||
static handle_T cmdpreview_bufnr = 0;
|
static handle_T cmdpreview_bufnr = 0;
|
||||||
static long cmdpreview_ns = 0;
|
static long cmdpreview_ns = 0;
|
||||||
|
|
||||||
static int cmd_hkmap = 0; // Hebrew mapping during command line
|
|
||||||
|
|
||||||
static void save_viewstate(win_T *wp, viewstate_T *vs)
|
static void save_viewstate(win_T *wp, viewstate_T *vs)
|
||||||
FUNC_ATTR_NONNULL_ALL
|
FUNC_ATTR_NONNULL_ALL
|
||||||
{
|
{
|
||||||
@@ -680,11 +678,6 @@ static uint8_t *command_line_enter(int firstc, long count, int indent, bool clea
|
|||||||
s->break_ctrl_c = true;
|
s->break_ctrl_c = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// start without Hebrew mapping for a command line
|
|
||||||
if (s->firstc == ':' || s->firstc == '=' || s->firstc == '>') {
|
|
||||||
cmd_hkmap = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
init_ccline(s->firstc, s->indent);
|
init_ccline(s->firstc, s->indent);
|
||||||
ccline.prompt_id = last_prompt_id++;
|
ccline.prompt_id = last_prompt_id++;
|
||||||
ccline.level = cmdline_level;
|
ccline.level = cmdline_level;
|
||||||
@@ -1166,9 +1159,6 @@ static int command_line_execute(VimState *state, int key)
|
|||||||
|
|
||||||
if (KeyTyped) {
|
if (KeyTyped) {
|
||||||
s->some_key_typed = true;
|
s->some_key_typed = true;
|
||||||
if (cmd_hkmap) {
|
|
||||||
s->c = hkmap(s->c);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cmdmsg_rl && !KeyStuffed) {
|
if (cmdmsg_rl && !KeyStuffed) {
|
||||||
// Invert horizontal movements and operations. Only when
|
// Invert horizontal movements and operations. Only when
|
||||||
@@ -2101,7 +2091,6 @@ static int command_line_handle_key(CommandLineState *s)
|
|||||||
if (!p_ari) {
|
if (!p_ari) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cmd_hkmap = !cmd_hkmap;
|
|
||||||
return command_line_not_changed(s);
|
return command_line_not_changed(s);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@@ -1147,8 +1147,8 @@ static void command_line_scan(mparm_T *parmp)
|
|||||||
case 'h': // "-h" give help message
|
case 'h': // "-h" give help message
|
||||||
usage();
|
usage();
|
||||||
os_exit(0);
|
os_exit(0);
|
||||||
case 'H': // "-H" start in Hebrew mode: rl + hkmap set.
|
case 'H': // "-H" start in Hebrew mode: rl + keymap=hebrew set.
|
||||||
p_hkmap = true;
|
set_option_value_give_err("keymap", 0L, "hebrew", 0);
|
||||||
set_option_value_give_err("rl", 1L, NULL, 0);
|
set_option_value_give_err("rl", 1L, NULL, 0);
|
||||||
break;
|
break;
|
||||||
case 'M': // "-M" no changes or writing of files
|
case 'M': // "-M" no changes or writing of files
|
||||||
|
@@ -769,10 +769,6 @@ static void normal_get_additional_char(NormalState *s)
|
|||||||
|
|
||||||
// adjust chars > 127, except after "tTfFr" commands
|
// adjust chars > 127, except after "tTfFr" commands
|
||||||
LANGMAP_ADJUST(*cp, !lang);
|
LANGMAP_ADJUST(*cp, !lang);
|
||||||
// adjust Hebrew mapped char
|
|
||||||
if (p_hkmap && lang && KeyTyped) {
|
|
||||||
*cp = hkmap(*cp);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// When the next character is CTRL-\ a following CTRL-N means the
|
// When the next character is CTRL-\ a following CTRL-N means the
|
||||||
|
@@ -5026,7 +5026,6 @@ static void paste_option_changed(void)
|
|||||||
static int save_sta = 0;
|
static int save_sta = 0;
|
||||||
static int save_ru = 0;
|
static int save_ru = 0;
|
||||||
static int save_ri = 0;
|
static int save_ri = 0;
|
||||||
static int save_hkmap = 0;
|
|
||||||
|
|
||||||
if (p_paste) {
|
if (p_paste) {
|
||||||
// Paste switched from off to on.
|
// Paste switched from off to on.
|
||||||
@@ -5052,7 +5051,6 @@ static void paste_option_changed(void)
|
|||||||
save_sta = p_sta;
|
save_sta = p_sta;
|
||||||
save_ru = p_ru;
|
save_ru = p_ru;
|
||||||
save_ri = p_ri;
|
save_ri = p_ri;
|
||||||
save_hkmap = p_hkmap;
|
|
||||||
// save global values for local buffer options
|
// save global values for local buffer options
|
||||||
p_ai_nopaste = p_ai;
|
p_ai_nopaste = p_ai;
|
||||||
p_et_nopaste = p_et;
|
p_et_nopaste = p_et;
|
||||||
@@ -5089,7 +5087,6 @@ static void paste_option_changed(void)
|
|||||||
}
|
}
|
||||||
p_ru = 0; // no ruler
|
p_ru = 0; // no ruler
|
||||||
p_ri = 0; // no reverse insert
|
p_ri = 0; // no reverse insert
|
||||||
p_hkmap = 0; // no Hebrew keyboard
|
|
||||||
// set global values for local buffer options
|
// set global values for local buffer options
|
||||||
p_tw = 0;
|
p_tw = 0;
|
||||||
p_wm = 0;
|
p_wm = 0;
|
||||||
@@ -5129,7 +5126,6 @@ static void paste_option_changed(void)
|
|||||||
}
|
}
|
||||||
p_ru = save_ru;
|
p_ru = save_ru;
|
||||||
p_ri = save_ri;
|
p_ri = save_ri;
|
||||||
p_hkmap = save_hkmap;
|
|
||||||
// set global values for local buffer options
|
// set global values for local buffer options
|
||||||
p_ai = p_ai_nopaste;
|
p_ai = p_ai_nopaste;
|
||||||
p_et = p_et_nopaste;
|
p_et = p_et_nopaste;
|
||||||
|
@@ -386,7 +386,6 @@ enum {
|
|||||||
|
|
||||||
// The following are actual variables for the options
|
// The following are actual variables for the options
|
||||||
|
|
||||||
EXTERN long p_aleph; // 'aleph'
|
|
||||||
EXTERN char *p_ambw; ///< 'ambiwidth'
|
EXTERN char *p_ambw; ///< 'ambiwidth'
|
||||||
EXTERN int p_acd; ///< 'autochdir'
|
EXTERN int p_acd; ///< 'autochdir'
|
||||||
EXTERN int p_ai; ///< 'autoindent'
|
EXTERN int p_ai; ///< 'autoindent'
|
||||||
@@ -544,8 +543,6 @@ EXTERN int p_hid; // 'hidden'
|
|||||||
EXTERN char *p_hl; // 'highlight'
|
EXTERN char *p_hl; // 'highlight'
|
||||||
EXTERN int p_hls; // 'hlsearch'
|
EXTERN int p_hls; // 'hlsearch'
|
||||||
EXTERN long p_hi; // 'history'
|
EXTERN long p_hi; // 'history'
|
||||||
EXTERN int p_hkmap; // 'hkmap'
|
|
||||||
EXTERN int p_hkmapp; // 'hkmapp'
|
|
||||||
EXTERN int p_arshape; // 'arabicshape'
|
EXTERN int p_arshape; // 'arabicshape'
|
||||||
EXTERN int p_icon; // 'icon'
|
EXTERN int p_icon; // 'icon'
|
||||||
EXTERN char *p_iconstring; // 'iconstring'
|
EXTERN char *p_iconstring; // 'iconstring'
|
||||||
|
@@ -55,8 +55,6 @@ return {
|
|||||||
full_name='aleph', abbreviation='al',
|
full_name='aleph', abbreviation='al',
|
||||||
short_desc=N_("ASCII code of the letter Aleph (Hebrew)"),
|
short_desc=N_("ASCII code of the letter Aleph (Hebrew)"),
|
||||||
type='number', scope={'global'},
|
type='number', scope={'global'},
|
||||||
redraw={'curswant'},
|
|
||||||
varname='p_aleph',
|
|
||||||
defaults={if_true=224}
|
defaults={if_true=224}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1071,16 +1069,16 @@ return {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
full_name='hkmap', abbreviation='hk',
|
full_name='hkmap', abbreviation='hk',
|
||||||
short_desc=N_("Hebrew keyboard mapping"),
|
short_desc=N_("No description"),
|
||||||
type='bool', scope={'global'},
|
type='bool', scope={'global'},
|
||||||
varname='p_hkmap',
|
varname='p_force_off',
|
||||||
defaults={if_true=false}
|
defaults={if_true=false}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
full_name='hkmapp', abbreviation='hkp',
|
full_name='hkmapp', abbreviation='hkp',
|
||||||
short_desc=N_("phonetic Hebrew keyboard mapping"),
|
short_desc=N_("No description"),
|
||||||
type='bool', scope={'global'},
|
type='bool', scope={'global'},
|
||||||
varname='p_hkmapp',
|
varname='p_force_off',
|
||||||
defaults={if_true=false}
|
defaults={if_true=false}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@@ -534,9 +534,6 @@ int showmode(void)
|
|||||||
} else if (restart_edit == 'V') {
|
} else if (restart_edit == 'V') {
|
||||||
msg_puts_attr(_(" (vreplace)"), attr);
|
msg_puts_attr(_(" (vreplace)"), attr);
|
||||||
}
|
}
|
||||||
if (p_hkmap) {
|
|
||||||
msg_puts_attr(_(" Hebrew"), attr);
|
|
||||||
}
|
|
||||||
if (State & MODE_LANGMAP) {
|
if (State & MODE_LANGMAP) {
|
||||||
if (curwin->w_p_arab) {
|
if (curwin->w_p_arab) {
|
||||||
msg_puts_attr(_(" Arabic"), attr);
|
msg_puts_attr(_(" Arabic"), attr);
|
||||||
|
@@ -86,6 +86,7 @@ endfunc
|
|||||||
|
|
||||||
" Test for character search with 'hkmap'
|
" Test for character search with 'hkmap'
|
||||||
func Test_charsearch_hkmap()
|
func Test_charsearch_hkmap()
|
||||||
|
throw "Skipped: Nvim does not support 'hkmap'"
|
||||||
new
|
new
|
||||||
set hkmap
|
set hkmap
|
||||||
call setline(1, "ùðáâ÷ëòéïçìêöî")
|
call setline(1, "ùðáâ÷ëòéïçìêöî")
|
||||||
|
@@ -2111,7 +2111,8 @@ func Test_cmdline_revins()
|
|||||||
call assert_equal("\"abc\<c-_>", @:)
|
call assert_equal("\"abc\<c-_>", @:)
|
||||||
set allowrevins
|
set allowrevins
|
||||||
call feedkeys(":\"abc\<c-_>xyz\<c-_>\<CR>", 'xt')
|
call feedkeys(":\"abc\<c-_>xyz\<c-_>\<CR>", 'xt')
|
||||||
call assert_equal('"abcñèæ', @:)
|
" call assert_equal('"abcñèæ', @:)
|
||||||
|
call assert_equal('"abcxyz', @:)
|
||||||
set allowrevins&
|
set allowrevins&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
@@ -516,7 +516,8 @@ func Test_edit_CTRL_()
|
|||||||
call setline(1, ['abc'])
|
call setline(1, ['abc'])
|
||||||
call cursor(1, 1)
|
call cursor(1, 1)
|
||||||
call feedkeys("i\<c-_>xyz\<esc>", 'tnix')
|
call feedkeys("i\<c-_>xyz\<esc>", 'tnix')
|
||||||
call assert_equal(["æèñabc"], getline(1, '$'))
|
" call assert_equal(["æèñabc"], getline(1, '$'))
|
||||||
|
call assert_equal(["zyxabc"], getline(1, '$'))
|
||||||
call assert_true(&revins)
|
call assert_true(&revins)
|
||||||
call setline(1, ['abc'])
|
call setline(1, ['abc'])
|
||||||
call cursor(1, 1)
|
call cursor(1, 1)
|
||||||
@@ -1913,6 +1914,7 @@ endfunc
|
|||||||
|
|
||||||
" Test for 'hkmap' and 'hkmapp'
|
" Test for 'hkmap' and 'hkmapp'
|
||||||
func Test_edit_hkmap()
|
func Test_edit_hkmap()
|
||||||
|
throw "Skipped: Nvim does not support 'hkmap'"
|
||||||
CheckFeature rightleft
|
CheckFeature rightleft
|
||||||
if has('win32') && !has('gui')
|
if has('win32') && !has('gui')
|
||||||
" Test fails on the MS-Windows terminal version
|
" Test fails on the MS-Windows terminal version
|
||||||
|
@@ -20,7 +20,8 @@ endfunc
|
|||||||
func Test_paste_opt_restore()
|
func Test_paste_opt_restore()
|
||||||
set autoindent expandtab ruler showmatch
|
set autoindent expandtab ruler showmatch
|
||||||
if has('rightleft')
|
if has('rightleft')
|
||||||
set revins hkmap
|
" set hkmap
|
||||||
|
set revins
|
||||||
endif
|
endif
|
||||||
set smarttab softtabstop=3 textwidth=27 wrapmargin=12
|
set smarttab softtabstop=3 textwidth=27 wrapmargin=12
|
||||||
if has('vartabs')
|
if has('vartabs')
|
||||||
@@ -33,7 +34,7 @@ func Test_paste_opt_restore()
|
|||||||
call assert_false(&expandtab)
|
call assert_false(&expandtab)
|
||||||
if has('rightleft')
|
if has('rightleft')
|
||||||
call assert_false(&revins)
|
call assert_false(&revins)
|
||||||
call assert_false(&hkmap)
|
" call assert_false(&hkmap)
|
||||||
endif
|
endif
|
||||||
call assert_false(&ruler)
|
call assert_false(&ruler)
|
||||||
call assert_false(&showmatch)
|
call assert_false(&showmatch)
|
||||||
@@ -51,7 +52,7 @@ func Test_paste_opt_restore()
|
|||||||
call assert_true(&expandtab)
|
call assert_true(&expandtab)
|
||||||
if has('rightleft')
|
if has('rightleft')
|
||||||
call assert_true(&revins)
|
call assert_true(&revins)
|
||||||
call assert_true(&hkmap)
|
" call assert_true(&hkmap)
|
||||||
endif
|
endif
|
||||||
call assert_true(&ruler)
|
call assert_true(&ruler)
|
||||||
call assert_true(&showmatch)
|
call assert_true(&showmatch)
|
||||||
|
@@ -389,7 +389,7 @@ endfunc
|
|||||||
" Test the -A, -F and -H arguments (Arabic, Farsi and Hebrew modes).
|
" Test the -A, -F and -H arguments (Arabic, Farsi and Hebrew modes).
|
||||||
func Test_A_F_H_arg()
|
func Test_A_F_H_arg()
|
||||||
let after =<< trim [CODE]
|
let after =<< trim [CODE]
|
||||||
call writefile([&rightleft, &arabic, 0, &hkmap], "Xtestout")
|
call writefile([&rightleft, &arabic, 0, &hkmap, &keymap], "Xtestout")
|
||||||
qall
|
qall
|
||||||
[CODE]
|
[CODE]
|
||||||
|
|
||||||
@@ -397,17 +397,17 @@ func Test_A_F_H_arg()
|
|||||||
" 'encoding' is not utf-8.
|
" 'encoding' is not utf-8.
|
||||||
if has('arabic') && &encoding == 'utf-8' && RunVim([], after, '-e -s -A')
|
if has('arabic') && &encoding == 'utf-8' && RunVim([], after, '-e -s -A')
|
||||||
let lines = readfile('Xtestout')
|
let lines = readfile('Xtestout')
|
||||||
call assert_equal(['1', '1', '0', '0'], lines)
|
call assert_equal(['1', '1', '0', '0', 'arabic'], lines)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if has('farsi') && RunVim([], after, '-F')
|
if has('farsi') && RunVim([], after, '-F')
|
||||||
let lines = readfile('Xtestout')
|
let lines = readfile('Xtestout')
|
||||||
call assert_equal(['1', '0', '1', '0'], lines)
|
call assert_equal(['1', '0', '1', '0', '???'], lines)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if has('rightleft') && RunVim([], after, '-H')
|
if has('rightleft') && RunVim([], after, '-H')
|
||||||
let lines = readfile('Xtestout')
|
let lines = readfile('Xtestout')
|
||||||
call assert_equal(['1', '0', '0', '1'], lines)
|
call assert_equal(['1', '0', '0', '0', 'hebrew'], lines)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call delete('Xtestout')
|
call delete('Xtestout')
|
||||||
|
Reference in New Issue
Block a user