diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-02-26 16:16:53 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-02-26 16:16:53 +0100 |
commit | b3f740695a0199d22cd97aee314f06c7ae32d2ea (patch) | |
tree | 8221662bb578d80a7a044f8a20aef09394a5a1a8 /runtime | |
parent | d672dde584effd55702ee15efec4cb2a8c77bf85 (diff) |
patch 8.2.0320: no Haiku supportv8.2.0320
Problem: No Haiku support.
Solution: Add support for Haiku. (Emir Sari, closes #5605)
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/doc/Makefile | 5 | ||||
-rw-r--r-- | runtime/doc/eval.txt | 2 | ||||
-rw-r--r-- | runtime/doc/gui.txt | 1 | ||||
-rw-r--r-- | runtime/doc/help.txt | 1 | ||||
-rw-r--r-- | runtime/doc/options.txt | 8 | ||||
-rw-r--r-- | runtime/doc/os_haiku.txt | 228 | ||||
-rw-r--r-- | runtime/doc/starting.txt | 5 | ||||
-rw-r--r-- | runtime/doc/tags | 16 | ||||
-rw-r--r-- | runtime/gvimrc_example.vim | 9 | ||||
-rw-r--r-- | runtime/vimrc_example.vim | 1 |
10 files changed, 271 insertions, 5 deletions
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile index 65dc8436c6..b1b4c8ec72 100644 --- a/runtime/doc/Makefile +++ b/runtime/doc/Makefile @@ -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 diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 508c59a150..fb4db5d407 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -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. diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt index 93e01ef6c5..1a38496040 100644 --- a/runtime/doc/gui.txt +++ b/runtime/doc/gui.txt @@ -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. diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt index 8f67ef5c98..f2b78466ee 100644 --- a/runtime/doc/help.txt +++ b/runtime/doc/help.txt @@ -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 diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index a48e9ea4a5..df8aba2a55 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -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" diff --git a/runtime/doc/os_haiku.txt b/runtime/doc/os_haiku.txt new file mode 100644 index 0000000000..1154ea7556 --- /dev/null +++ b/runtime/doc/os_haiku.txt @@ -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: diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt index b9a2370711..f437c0e034 100644 --- a/runtime/doc/starting.txt +++ b/runtime/doc/starting.txt @@ -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|. diff --git a/runtime/doc/tags b/runtime/doc/tags index 735fb2d0c7..fdba199a04 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -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* diff --git a/runtime/gvimrc_example.vim b/runtime/gvimrc_example.vim index cc3e791e87..083dacee90 100644 --- a/runtime/gvimrc_example.vim +++ b/runtime/gvimrc_example.vim @@ -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 diff --git a/runtime/vimrc_example.vim b/runtime/vimrc_example.vim index 3017a6cf93..e11e4cff55 100644 --- a/runtime/vimrc_example.vim +++ b/runtime/vimrc_example.vim @@ -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 |