1
0
forked from aniani/vim

patch 8.2.0320: no Haiku support

Problem:    No Haiku support.
Solution:   Add support for Haiku. (Emir Sari, closes #5605)
This commit is contained in:
Bram Moolenaar
2020-02-26 16:16:53 +01:00
parent d672dde584
commit b3f740695a
41 changed files with 6321 additions and 160 deletions

View File

@@ -64,6 +64,7 @@ DOCS = \
os_amiga.txt \
os_beos.txt \
os_dos.txt \
os_haiku.txt \
os_mac.txt \
os_mint.txt \
os_msdos.txt \
@@ -204,6 +205,7 @@ HTMLS = \
os_amiga.html \
os_beos.html \
os_dos.html \
os_haiku.html \
os_mac.html \
os_mint.html \
os_msdos.html \
@@ -422,6 +424,9 @@ os_beos.txt:
os_dos.txt:
touch os_dos.txt
os_haiku.txt:
touch os_haiku.txt
os_mac.txt:
touch os_mac.txt

View File

@@ -10766,12 +10766,14 @@ gui_gnome Compiled with Gnome support (gui_gtk is also defined).
gui_gtk Compiled with GTK+ GUI (any version).
gui_gtk2 Compiled with GTK+ 2 GUI (gui_gtk is also defined).
gui_gtk3 Compiled with GTK+ 3 GUI (gui_gtk is also defined).
gui_haiku Compiled with Haiku GUI.
gui_mac Compiled with Macintosh GUI.
gui_motif Compiled with Motif GUI.
gui_photon Compiled with Photon GUI.
gui_running Vim is running in the GUI, or it will start soon.
gui_win32 Compiled with MS Windows Win32 GUI.
gui_win32s idem, and Win32s system being used (Windows 3.1)
haiku Haiku version of Vim.
hangul_input Compiled with Hangul input support. |hangul|
hpux HP-UX version of Vim.
iconv Can use iconv() for conversion.

View File

@@ -99,6 +99,7 @@ Recommended place for your personal GUI initializations:
or $VIM/_gvimrc
Amiga s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc
or $VIM/.gvimrc
Haiku $HOME/config/settings/vim/gvimrc
The personal initialization files are searched in the order specified above
and only the first one that is found is read.

View File

@@ -204,6 +204,7 @@ Remarks about specific systems ~
|os_os2.txt| OS/2
|os_qnx.txt| QNX
|os_risc.txt| RISC-OS
|os_haiku.txt| Haiku
|os_unix.txt| Unix
|os_vms.txt| VMS
|os_win32.txt| MS-Windows

View File

@@ -3769,7 +3769,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'guitablabel' can be used to change the text in the labels.
When 'e' is missing a non-GUI tab pages line may be used.
The GUI tabs are only supported on some systems, currently
GTK, Motif, Mac OS/X and MS-Windows.
GTK, Motif, Mac OS/X, Haiku, and MS-Windows.
*'go-f'*
'f' Foreground: Don't use fork() to detach the GUI from the shell
where it was started. Use this for programs that wait for the
@@ -6207,6 +6207,11 @@ A jump table for the options with a short description can be found at |Q_op|.
Macintosh: "$VIM:vimfiles,
$VIMRUNTIME,
$VIM:vimfiles:after"
Haiku: "$BE_USER_SETTINGS/vim,
$VIM/vimfiles,
$VIMRUNTIME,
$VIM/vimfiles/after,
$BE_USER_SETTINGS/vim/after")
VMS: "sys$login:vimfiles,
$VIM/vimfiles,
$VIMRUNTIME,
@@ -7665,6 +7670,7 @@ A jump table for the options with a short description can be found at |Q_op|.
in the GUI: "builtin_gui"
on Amiga: "amiga"
on BeOS: "beos-ansi"
on Haiku: "xterm"
on Mac: "mac-ansi"
on MiNT: "vt52"
on Unix: "ansi"

228
runtime/doc/os_haiku.txt Normal file
View File

@@ -0,0 +1,228 @@
*os_haiku.txt* For Vim version 8.2. Last change: 2020 Feb 26
VIM REFERENCE MANUAL by Bram Moolenaar
*Haiku*
This file contains the particularities for the Haiku version of Vim. For
matters not discussed in this file, Vim behaves very much like the Unix
|os_unix.txt| version.
Haiku is an open-source operating system inspired by BeOS, that specifically
targets personal computing.
1. General |haiku-general|
2. Compiling Vim |haiku-compiling|
3. The Haiku GUI |haiku-gui|
4. The $VIM directory |haiku-vimdir|
5. The $BE_USER_SETTINGS
directory |haiku-user-settings-dir|
6. Drag & Drop |haiku-dragndrop|
7. Single Launch vs. Multiple
Launch |haiku-launch|
8. Fonts |haiku-fonts|
9. The meta key modifier |haiku-meta|
10. Mouse key mappings |haiku-mouse|
11. Color names |haiku-colors|
12. Credits |haiku-support-credits|
13. Bugs & things To Do |haiku-bugs|
1. General *haiku-general*
The default syntax highlighting mostly works with different foreground colors
to highlight items. This works best if you set your Terminal window to a
darkish background and light letters. Some middle-grey background (for
instance (r,g,b)=(168,168,168)) with black letters also works nicely.
2. Compiling Vim *haiku-compiling*
Vim can be compiled using the standard configure/make approach. Running
./configure without any arguments or passing --enable-gui=haiku, will compile
vim with the Haiku GUI support. Run ./configure --help , to find out other
features you can enable/disable.
Now you should use "make" to compile Vim, then "make install" to install it.
For seamless integration into the Haiku the GUI-less vim binary should be
additionally installed over the GUI version. Typical build commands are: >
./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \
--datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \
--mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \
make clean
make install
./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \
--datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \
--mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \
--disable-gui
make clean
make install
3. The Haiku GUI *haiku-gui*
Normally Vim starts with the GUI if you start it as gvim or vim -g. The vim
version with GUI tries to determine if it was started from the Tracker instead
of the Terminal, and if so, uses the GUI anyway. However, the current detection
scheme is fooled if you use the command "vim - </dev/null".
Stuff that does not work yet:
- Mouse up events are not generated when outside the window. This may be a bug in
Haiku. You can notice this when selecting text and moving the cursor outside
the window, then letting go of the mouse button. Another way is when you
drag the scrollbar and do the same thing. Because Vim still thinks you are
still playing with the scrollbar it won't change it itself. I provided a
workaround which kicks in when the window is activated or deactivated (so it
works best with focus- follows-mouse turned on).
- The cursor does not flash (very low priority; I'm not sure I even like it
when it flashes)
4. The $VIM directory *haiku-vimdir*
$VIM is the symbolic name for the place where Vims support files are stored.
The default value for $VIM is set at compile time and can be determined with >
:version
The normal value is /boot/common/data/vim. If you don't like it you can
set the VIM environment variable to override this, or set 'helpfile' in your
.vimrc: >
:if version >= 500
: set helpfile=~/vim/runtime/doc/help.txt
: syntax on
:endif
5. The $USER_SETTINGS_DIR directory *haiku-user-settings-dir*
$USER_SETTINGS_DIR is the symbolic name for the place where Haiku
configuration and settings files are stored.
The normal value is /boot/home/config/settings.
6. Drag & Drop *haiku-dragndrop*
You can drop files and directories on either the Vim icon (starts a new Vim
session, unless you use the File Types application to set Vim to be "Single
Launch") or on the Vim window (starts editing the files). Dropping a folder
sets Vim's current working directory. |:cd| |:pwd| If you drop files or
folders with either SHIFT key pressed, Vim changes directory to the folder
that contains the first item dropped. When starting Vim, there is no need to
press shift: Vim behaves as if you do.
Files dropped set the current argument list. |argument-list|
7. Single Launch vs. Multiple Launch *haiku-launch*
As distributed Vim's Application Flags (as seen in the FileTypes preference)
are set to Multiple Launch. If you prefer, you can set them to Single Launch
instead. Attempts to start a second copy of Vim will cause the first Vim to
open the files instead. This works from the Tracker but also from the command
line. In the latter case, non-file (option) arguments are not supported.
Another drawback of the Single Launch is silent ignore of "Open With ..."
requests by vim instance that running as non-GUI application even GUI support
was compiled in. Vim instance running with GUI has no such problems.
NB: Only the GUI version has a BApplication (and hence Application Flags).
This section does not apply to the GUI-less version, should you compile one.
8. Fonts *haiku-fonts*
Set fonts with >
:set guifont=DejaVu_Sans_Mono/Book/12
where the first part is the font family, the second part the style, and the
third part the size. You can use underscores instead of spaces in family and
style.
Best results are obtained with monospaced fonts. Vim attempts to use all
fonts in B_FIXED_SPACING mode but apparently this does not work for
proportional fonts (despite what the BeBook says).
To verify which encodings are supported by the current font give the >
:digraphs
command, which lists a bunch of characters with their ISO Latin 1 encoding.
If, for instance, there are "box" characters among them, or the last character
isn't a dotted-y, then for this font the encoding does not work.
If the font you specify is unavailable, you get the system fixed font.
GUI Font Selection Dialog is available at giving the >
:set guifont=*
command.
9. The meta key modifier *haiku-meta*
The META key modifier is obtained by the left or right OPTION keys. This is
because the ALT (aka COMMAND) keys are not passed to applications.
10. Mouse key mappings *haiku-mouse*
Vim calls the various mouse buttons LeftMouse, MiddleMouse and RightMouse. If
you use the default Mouse preference settings these names indeed correspond to
reality. Vim uses this mapping:
Button 1 -> LeftMouse,
Button 2 -> RightMouse,
Button 3 -> MiddleMouse.
If your mouse has fewer than 3 buttons you can provide your own mapping from
mouse clicks with modifier(s) to other mouse buttons. See the file
$VIM/macros/swapmous.vim for an example. |gui-mouse-mapping|
11. Color names *haiku-colors*
Vim has a number of color names built-in. Additional names are read from the
file $VIMRUNTIME/rgb.txt, if present. This file is basically the color
database from X. Names used from this file are cached for efficiency.
12. GUI Toolbar Images *haiku-toolbar-images*
Alternative set of toolbar images should be the PNG image of any height you
like. Image width is calculated to contain at least 32 buttons in one-row
cells.
The image should be stored under the name $VIRUNTIME/bitmaps/builtin-tools.png
More info about the buttons assignment are at |builtin-tools|.
13. Credits *haiku-support-credits*
Haiku port is based on work done for BeOS version by many people
- BeBox GUI support Copyright 1998 by Olaf Seibert;
- Ported to R4 by Richard Offer <richard@whitequeen.com> Jul 99;
- Those who contributed, not listed above but not forgotten;
- Haiku support by Siarzhuk Zharski <imker@gmx.li> Apr-Mai 2009.
All the changes and patches released under vim-license.
Thank you, all!
13. Bugs & things To Do *haiku-bugs*
The port is under development now and far away from the perfect state. Bug
reports, patches and wishes are welcome.
-Siarzhuk Zharski <imker@gmx.li>
vim:tw=78:ts=8:ft=help:norl:

View File

@@ -790,6 +790,7 @@ accordingly. Vim proceeds in this order:
or $VIM/_vimrc
Amiga s:.vimrc, home:.vimrc, home:vimfiles:vimrc
or $VIM/.vimrc
Haiku $HOME/config/settings/vim/vimrc
The files are searched in the order specified above and only the first
one that is found is read.
@@ -835,6 +836,8 @@ accordingly. Vim proceeds in this order:
"$HOME/_vimrc" (for Win32) (*)
"$HOME/vimfiles/vimrc" (for Win32) (*)
"$VIM/_vimrc" (for Win32) (*)
"$HOME/config/settings/vim/vimrc" (for Haiku) (*)
Note: For Unix and Amiga, when ".vimrc" does not exist,
"_vimrc" is also tried, in case an MS-DOS compatible file
system is used. For MS-Windows ".vimrc" is checked after
@@ -950,6 +953,8 @@ sessions. Put it in a place so that it will be found by 3b:
~/.vimrc (Unix)
s:.vimrc (Amiga)
$VIM\_vimrc (Win32)
~/config/settings/vim/vimrc (Haiku)
Note that creating a vimrc file will cause the 'compatible' option to be off
by default. See |compatible-default|.

View File

@@ -4871,6 +4871,7 @@ GetLatestVimScripts-copyright pi_getscript.txt /*GetLatestVimScripts-copyright*
GetLatestVimScripts_dat pi_getscript.txt /*GetLatestVimScripts_dat*
Gnome gui_x11.txt /*Gnome*
H motion.txt /*H*
Haiku os_haiku.txt /*Haiku*
I insert.txt /*I*
ICCF uganda.txt /*ICCF*
IM-server mbyte.txt /*IM-server*
@@ -7053,6 +7054,20 @@ g~ change.txt /*g~*
g~g~ change.txt /*g~g~*
g~~ change.txt /*g~~*
h motion.txt /*h*
haiku-bugs os_haiku.txt /*haiku-bugs*
haiku-colors os_haiku.txt /*haiku-colors*
haiku-compiling os_haiku.txt /*haiku-compiling*
haiku-dragndrop os_haiku.txt /*haiku-dragndrop*
haiku-fonts os_haiku.txt /*haiku-fonts*
haiku-general os_haiku.txt /*haiku-general*
haiku-gui os_haiku.txt /*haiku-gui*
haiku-launch os_haiku.txt /*haiku-launch*
haiku-meta os_haiku.txt /*haiku-meta*
haiku-mouse os_haiku.txt /*haiku-mouse*
haiku-support-credits os_haiku.txt /*haiku-support-credits*
haiku-toolbar-images os_haiku.txt /*haiku-toolbar-images*
haiku-user-settings-dir os_haiku.txt /*haiku-user-settings-dir*
haiku-vimdir os_haiku.txt /*haiku-vimdir*
hangul hangulin.txt /*hangul*
hangulin.txt hangulin.txt /*hangulin.txt*
has() eval.txt /*has()*
@@ -8211,6 +8226,7 @@ os_390.txt os_390.txt /*os_390.txt*
os_amiga.txt os_amiga.txt /*os_amiga.txt*
os_beos.txt os_beos.txt /*os_beos.txt*
os_dos.txt os_dos.txt /*os_dos.txt*
os_haiku.txt os_haiku.txt /*os_haiku.txt*
os_mac.txt os_mac.txt /*os_mac.txt*
os_mint.txt os_mint.txt /*os_mint.txt*
os_msdos.txt os_msdos.txt /*os_msdos.txt*

View File

@@ -6,10 +6,11 @@
" Last change: 2016 Apr 05
"
" To use it, copy it to
" for Unix: ~/.gvimrc
" for Amiga: s:.gvimrc
" for MS-DOS and Win32: $VIM\_gvimrc
" for OpenVMS: sys$login:.gvimrc
" for Unix: ~/.gvimrc
" for Amiga: s:.gvimrc
" for MS-Windows: $VIM\_gvimrc
" for Haiku: ~/config/settings/vim/gvimrc
" for OpenVMS: sys$login:.gvimrc
" Make external commands work through a pipe instead of a pseudo-tty
"set noguipty

View File

@@ -7,6 +7,7 @@
" for Unix: ~/.vimrc
" for Amiga: s:.vimrc
" for MS-Windows: $VIM\_vimrc
" for Haiku: ~/config/settings/vim/vimrc
" for OpenVMS: sys$login:.vimrc
" When started as "evim", evim.vim will already have done these settings, bail