[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Emacs.app (Cocoa/GNUstep port) release and feature list

From: Adrian Robert
Subject: Emacs.app (Cocoa/GNUstep port) release and feature list
Date: Fri, 23 Nov 2007 13:41:56 +0300


Release 9.0-rc3 for the GNUstep and OS X / Cocoa port of the GNU Emacs
unicode-2 is available at http://emacs-app/sf.net

This release brings with it the multi-TTY merge (mixed GUI/TTY
sessions not yet supported though), and a number of bug fixes and
minor enhancements.  GNUstep support is untested for this release;
please contact me off-list if you have a GNUstep installation and are
willing to try it out.

In view of the prospects for upcoming merge into CVS, it was suggested
that a list of user-visible differences in this port from other
platforms be posted.  See below.  A couple of general points should be

- The general aim is to take advantage of platform-specific features
without compromising or altering anything in standard emacs
functionality.  It should support all non-platform-specific emacs lisp
packages -- if not it's a bug.

- Most of the features below are now supported as well by the Carbon
port, modulo differences in what is enabled or set by default.

- "Patch" files available on sourceforge allow easy inspection of just
the code that this port adds.

- Text rendering: Font anti-aliasing.

  This is standard on the OS X and GNUstep platforms.  Can be turned
off if desired.

- Text rendering: adjustable line height.

  Allows vertical compression or expansion of the display.  By default
it is inactive.

- Display: alpha and background image support.

  Frame backgrounds can be set to transparent colors and/or images.
Inactive by default.

- Keyboard handling: Support platform "Command" key as "Super".

  The Command key is an extra key on this platform relative to typical
X hardware.  Mapping it to Super and setting up appropriate
keybindings allows Emacs to support full CUA keybindings on these
systems without interfering with standard emacs Control and Meta

- Keyboard handling: Support platform input methods and keyboard mappings.

  Equivalent to XIM support on X systems.

- Fontsets: Capability to autogenerate fontsets for a given base font.

  This takes advantage of platform-provided facilities.  It does not
have to be used; standard manually-defined fontsets are fully
supported, albeit via an X11-specific syntax.

- Menus: Prefer Super bindings in display of shortcuts.

  This causes display of CUA bindings, similar to other platform apps.

- Menus: Add "Emacs" and "Windows" menus.

  These are standard menus for all platform applications.  A couple of
entries on these are moved from other menus.

- Navigation: ns-mark-nav package for navigating the mark rings.

  User can move backwards or forwards through buffer or global mark
history with meta-p / meta-n.

- Customization: Use of 'defaults' persistent user preferences database.

  Takes the place of X resources on NS systems, called through the
same pathways (x_get_string_resource(), etc.), and used for similar
settings (mostly GUI-related).  As with X resources, these may be
overridden by .emacs and other lisp-based methods.

- Customization: Font panel for default font and size selection.

  This feature allows user to select font via a system-provided
chooser.  It exists also in the Carbon and W32 ports, and maybe (?)
the GTK/Xft port.  Does not interfere with ordinary face-customization
setting of fonts, just provides an alternate route.

- Customization: Color panel for face color customization.

  This feature has no equivalent on other systems, but need not be
used and does not interfere with standard means of color
customization.  User may drag from a color-selection panel to
characters in an emacs frame to change color of face at that point.

- Customization: Preferences panel for major GUI settings.

  This feature has no equivalent on other systems, but need not be
used and does not interfere with standard means of customization.
Backed by lisp-accessible variables and persisted via the X resources

- Integration: Services integration.

  "Services" on NS platforms provide for inter-application
communication.  The Emacs.app implementation currently exposes
services from other apps to Emacs, via both menus and lisp functions.

- Integration: Respond to Workspace requests.

  Files can be associated to Emacs.app and opened within it by
double-clicking (new instance started only if one not running),
similar to emacsclient but tied to the OS file browser.  Note this
does not replace emacsclient, which remains bundled with Emacs.app and
functions correctly on these systems.

- Integration: drag/drop of files and text.

  Text or file dragged to an emacs window is inserted; file dragged to
application icon opened in new buffer.

- Integration: ns-grab-env function and macFixEnv binary tool.

  These deal with a platform-specific issue in which the PATH value
given to the application started from the Workspace (rather than
command line) may not be what is expected.

- File system: Open and Save file GUI panels are available.

  These are bound to menu operations and 'super' keybindings.  They do
not take the place of standard minibuffer- and dired-based Emacs
file-finding mechanisms, and no existing keybindings are overridden.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]