* bind `eval-region` to `M-C-z` * fix configure and Makefile for arm64 target * output selected target in configure * bump version to 5.4.1f
28 KiB
QEmacs TODO list
Documentation
- improve README.md
- rework documentation:
- document existing features
- make documentation available inside qemacs
- move documentation to markdown
- rewrite TODO.md file with more sections and explanations
- migrate coding-rules.html to markdown
- use cooked markdown mode for help
- add command
qemacs-helloonC-h h: load hello file for charset tests - add command
qemacs-faqonC-h C-f - add command
qemacs-manualonC-h m - help:
data-directory,data-path? - add command documentation in
describe-function - add command documentation in
describe-variable - show memory stats in
describe-bufferandabout-qemacs - add function to add entry in TODO.md
Core / Buffer / Input
describe-key-briefly,local-set-key, etc should use a special input mode to read a string of keys via the minibuffer to remove theqe_key_processhack and use the same input behavior as emacs.- in command specs, distinguish between interactive commands and non interactive functions
- use tabulation context for
text_screen_width - add method pointers in windows initialized from fallback chain
- remove redundant bindings along fallback chains
- share mmapped pages correctly
- check abort during long operations: bufferize input and check for
^G - optional 64-bit offsets on 64-bit systems, use typedef for buffer offsets
- disable messages from commands if non-interactive (eg:
set-variable) - add custom memory handling functions.
qe_realloc: typed and clear reallocated area- use failsafe memory allocator and
longjmprecover. - move
ungot_keytokey_context - splitting pages should fall on 32 bit boundaries (difficult)
- handle broken charset sequences across page boundaries
- allow recursive main loop, and remove input callbacks
- synced virtual buffers with restricted range
- unsynced virtual buffers with restricted range and specific mode/charset
- bfs: built in file system for embedded extensions and files Jasspa bfs is way too complicated, make simpler system
- notes
- tiny: remove extra features
- tiny: make a really small version
- use Cursors cursors in command dispatchers:
an EditState would have an embedded QECursor that contains the buffer and offset an EditBuffer could also have an embedded QECursor with no EditStatestruct QECursor { QEmacsState *qs; EditState *s; /* points to the parent window */ EditBuffer *b; int offset; // optional navigation data to accelerate buffer access: // getc(), peekc(), prevc()... etc. }; - use hash tables for command and variable names
- sort key binding tables?
next-buffercommand on C-x C-rightprevious-buffercommand on C-x C-leftsave-some-bufferscommand on C-x s- standardize key prefixes: C-, M-, S- and possibly others
- redefine
KEY_Fxto make them sequential - add registrable escape sequences and key names ex: S-f5 = ^[[15;2~
- add registrable key translations for NON ASCII input ex: C-x 8 3 / 4 ¾
Charsets / Unicode / Bidir
- add default charset for new buffer creation, set that to utf8
- better display of invalid UTF-8 encodings
- change character detection API to handle cross page spanning
- fix
eb_prev_charto handle non self-synchronizing charsets - handle chinese encodings
- handle euc-kr
- add JIS missing encoding functions
- add JIS charset probing functions
- autodetect sjis, euc-jp...
- fix kana input method
- update cp directory from more recent unicode tables
- UTF-8 variants: CESU-8, Modified UTF-8, UTF-16
- UTF-1 obsolete standard encoding for Unicode
- handle
tty-widthto compute alignement in dired, bufed... - limit number of combining marks to 20
- use
unichar,runeand/oru8types (usingchar32_tat the moment) - detect bad encoding and use
errnoto tell caller - auto/mixed eol mode
set-eol-typeshould take a string: auto/binary/dos/unix/mac/0/1/2...- display
^Las horizontal line and consider as linebreak character - handle zero width codepoints: cp="200B" na="ZERO WIDTH SPACE" alias="ZWSP" cp="200C" na="ZERO WIDTH NON-JOINER" alias="ZWNJ" cp="200D" na="ZERO WIDTH JOINER" alias="ZWJ" cp="200E" na="LEFT-TO-RIGHT MARK" alias="LRM" cp="200F" na="RIGHT-TO-LEFT MARK" alias="RLM"
set_input_method()andset_buffer_file_coding_system()in config file.- test Hebrew keymap support.
- rewrite fribidi
- use Unicode file hierarchy for code page files
- handle or remove extra code page files: CP1006.TXT CP1253.TXT CP1254.TXT CP1255.TXT CP1258.TXT CP775.TXT CP855.TXT CP856.TXT CP857.TXT CP860.TXT CP861.TXT CP862.TXT CP863.TXT CP864.TXT CP865.TXT CP869.TXT CP874.TXT CP932.TXT JIS0201.TXT SHIFTJIS.TXT euc-jis-2004-std.txt iso-2022-jp-2004-std.txt jisx0213-2004-std.txt sjis-0213-2004-std.txt MAC-CYRILLIC.TXT MAC-GREEK.TXT MAC-ICELAND.TXT MAC-TURKISH.TXT koi8_ru.cp APL-ISO-IR-68.TXT GSM0338.TXT SGML.TXT
- deal with accents in filenames (macOS uses combining accents encoded as UTF-8)
- rename
eb_putcas it handles the full char32_t range
Windowing / Display
set-display-sizeunit issue: use extra argument or different function for pixels and characters- always save window buffer properties to buffer upon detaching
- add global system to select default values for some window states
- fix current position when changing buffer attached to window
- fix default wrap setting mess
- display: add screen dump command and format
- colorize extra
^Mand^Zas preproc at end of line prior to calling the syntax highlighter (same as BOM) - colorizer bug on /comp/projects/fractal/fractint/ORGFORM/NOEL-2.FRM (triple
^M) - display bug on ~/comp/projects/fractal/fractint/ORGFORM/BAILOUT.FRM (double
^M) - default
display-widthof 0 is automatic, other values are shared between binary and hex modes - minibuffer and popup windows should be in a separate lists
toggle-full-screenshould not put modeline on popuptoggle-full-screenshould work on popups- kill buffer should delete popup and popleft window
- layout: check coordinate system to 1000 based with optional sidebars
- improve layout scheme for better scalability.
- display: API: use style cache in
DisplayState - display: API: remove screen argument in
release_font,glyph_width - display: API: add
create-style(name, properties) - display: use true colors on capable terminals
- basic:
frame-title-formatandmode-line-format - basic:
transient-mark-modeto highlight the current region - basic:
delete-selection-modeto delete the highlighted region on DEL and typing text - modes:
header-lineformat - modes:
mode-lineformat - display filename relative to current directory instead of buffer name on
mode-line - window scrolling not emulated in tty (check
^Zin recursive eps) - multiple frames
- lingering windows
- cursor not found on doc/256colors.raw if
truncate-lines=1 enlarge-window-interactivelyenlarge-window-horizontallyenlarge-window- tab cursor displayed size
- improve speed of text renderer / improve truncate mode
- merge some good parts with CSS renderer ?.
- Suppress CRC hack (not reliable).
- fix crash bug on fragments longer than
MAX_SCREEN_WIDTH. - vertical scroll bar
- menu / context-menu / toolbars / dialogs
- scrolling by window size should position cursor differently
- emulation mode to use line-drawing characters for window borders
- Clean window deletion mess:
- avoid problems with popups (
kill_buffer,delete_window) - detach window from tree and keep attached to buffer if last
- detach window from tree and put in delayed free tree otherwise
- avoid problems with popups (
edit_close(s)
do_delete_window(s)
bufed_select(s) if vertical split
dired_select(s) if vertical split
do_popup_exit(s)
do_delete_other_windows(s) deletes other windows (!)
do_minibuffer_exit(s) also deletes completion_popup
insert_window_left() deletes some left-most windows
do_list_buffers()
do_dired()
- wrap long lines past line numbers column
- fix column computation based on display properties: (variable pitch, tabs, ^x and \uxxxx stuff -- emacs behaviour) ?
X11 display / graphics
- handle X11 window manager close window event and exit cleanly
- clip display by popup size
- move
-nwcmd line option to tty.c and maketerm_probereturn better score - remember X11 window positions and restore layout?
- faster video handling (generalize invalidate region system)
- integrate tinySVG renderer based on the new libraster.
- implement wheel mode in CSS display.
- fix configure for missing support: x11 xv png ...
- add
configure --disable-graphics dpy_open_fontshould never returnNULL, must have a system font.
Files
- [BUG] check file date to detect asynchronous modifications on disk
- reload modified file upon change if untouched since load
- add hook on file change
- handle files starting with re:
- check file permissions.
- handle filenames with embedded spaces
- use trick for entering spaces in filename prompts without completion
- fix
s->offsetreset to 0 uponC-x C-f newfile ENT C-x 2 C-x b ENT - insert-file: load via separate buffer with charset conversion
qe_load_fileshould split screen evenly forLF_SPLIT_SCREENflag- [Idea] save file to non existent path -> create path.
- [Idea] find-file: gist:snippet
- Missing commands:
reload-fileonC-x C-rfind-file-existingfind-other-frameonC-x 5 f,C-x 5 C-ffind-other-windowonC-x 4 f,C-x 4 C-ffind-other-read-onlyonC-x C-rfind-file-read-only-other-frameonC-x 5 rfind-file-read-only-other-windowonC-x 4 rsave-modified-buffersonC-x sfind-file: should support scp syntax for remote loading
- avoid error in new file
- actually load file in
find-file-noselect - should update symbolic links times when saving files
- improve speed:
C-x C-f ~/x2m RET A-r 20140101 RET 20140101 RET-> 96s - improve speed:
C-x C-f ~/x2m RET C-u 1000 C-n-> 4s - use a prefix to explore file in a popup window
Moving / Editing / Navigation
- pass argval and pagewise to
do_scroll_up_down()or split command - files: fix
SPC/TABdistinct behaviors on ~/comp/project/gnachman/ - basic: update default settings to
indent_tabs_mode = 0,indent_width = 4, my-colors - basic: add property lists in buffer and window for default directory and similar properties (override)
- basic: backspace delete hacking tabs
- basic: enter should optionally remove whitespace at end of line
- basic: reset last command when executing macro
- basic: make
do_word_right,do_word_left,do_bol,do_eol... return new offset - basic: use visual movement for left, right, up, down and character based for
C-b C-f C-n C-p - basic: fix offset when exiting
s->hex_mode do_transposeshould take argval and swap distant fragmentsdo_transposehas invalid behavior if left or right chunk is empty- new flavor for GoogleClosureCompiler
- emacs bindings:
M-g M-ggoto-line(with prefix argument)M-g TABmove-to-column(with prefix argument)
- Missing commands:
what-cursor-positionwith universal prefix: show popup with long descriptioncompare-windowsshould resync from the end of line.elastic-tabsindent-rigidlyshow-matching-delimiters- blink-and-insert on
) } ] > set-gosmacs-bindings->set_emulation("gosmacs")auto-fill-modeauto-revert-mode,global-auto-revert-mode,auto-revert-tail-modenext-bufferonC-x C-right, C-x >, f12Move to the next buffer.previous-bufferonC-x C-left, C-x <, f11Move to the next buffer.
toggle-full-screen-> unsupported ifscreen->dpy_full_screenisNULL- remote editing
- fix scroll up/down to move point if already at end
- move by paragraph on
M-[andM-] fill-paragraphshould default indentation for the second and subsequent lines to that of the first line- scroll horizontally on
M-{andM-} - scroll up/down with argument should scroll by screen row.
- simplify
C-zandA-zaccordingly - rectangular regions, cut/paste
- multi-line editing
Macros
start-keyboard-macroshould clear current macro if called recursively- allow redefining the keyboard macro embedding itself
show-macro,dump-macroto ease macro debugging and timing- fix macro slowliness in 6000 line buffer junk/dirs/x
- do not use visual movement inside macros (definition and execution)
- do not redisplay during macro execution, esp with prefix
- check for abort/failure during repeated command execution and macros
- improve
dump-macroto convert macro to string - fix
dump-macroto save/restorelast-kbd-macroto/from session - do not store messages during repeated macro execution or limit buffer size
name-last-kbd-macro- fix source syntax issues
(define-macro "last-kbd-macro" "A-fA-fC-FC-FC-@C-EA-wC-AC-NC-XnC-YC-MC-Xp")
(define-macro "last-kbd-macro" "A\-f")
--- - - -
(define-macro "last-kbd-macro" "--- - - -C-M
<Down><Up><Right><Left>")
<><>(define-macro "last-kbd-macro" "\<>\<>")
Minibuffer / Completion
- minibuf: spurious recursive edit cases.
- completion: fix electric behavior
- completion: add completion function to get the default value
- basic: fix fuzzy completion when single unanchored match
- completion: minibuffer completion: bad return on
C-x C-f . SPC qe SPC RET - minibuf: use more mode specific bindings
- minibuf:
minibuffer-electric-yankin minibuffer to fix pathname - basic: completion in
load-resource-file - completion: abbreviate lines in file completion list popup
- open file with fuzzy completion
- execute command with fuzzy completion
- completion with fuzzy matching
Searching
- store incremental search strings in search history list
- incremental search: increase max repeat count
- improve search speed finally
- add low-level search accelerator function
hex-modesearch strings should mix hex ut8 strings and ASCII control char names- isearch in hex should display search string in hex
- transfer case in
query-replace - regex search/replace
- query replace across multiple files
- query replace options: u -> undo last change
- add non selectable query-replace-mode for key bindings, cmd description and documentation
- extra:
grep,grep-buffer,grep-sources,grep-tree... - query_replace functions should be restricted to the highlighted region if any
- search:
count-words,wc,count-sloc - search: stats command for word count and mode specific stats
- isearch:
M-pandM-nshould select previous and next search pattern in history - searching failure should abort macros
Undo
- allow file save when undo clears file modified flag
- undo some cursor movements
- group undo entries to match command and or macro boundaries
- saving the file kills the redo stack!
- when undo resets the modified buffer flag, this prevents file save
- store cursor movements in undo records
- kill redo list when forking after undo
- undo should handle sequence of undo records upto tagged start.
- add disable-undo for tests and benchmarking
- limit size of undo buffers (
undo-outer-limit, default 3000000) - add undo records for styles, modes...
- disable undo for archive parse and uncompress phases
- compress logs and limit size
- mode for undo buffers
Config / Sessions / Scripting
- config: reparse .qerc upon change
- session: register session store functions
- session: save previous answers, ...
- session: save preview mode, buffer modes and properties
- session: save process buffers? non file-based buffers? dired buffers?
qe_get_variableshould populate a QEValueqe_set_variableshould take a QEValue pointer- variables: add minimal version in tqe
- variables: set variable values via function pointer
- variables: add boolean and char types
- tack library of ancillary files at the end of the binary:
- add protocol to read from library (lib:xxx)
- add html.min.css and docbook.min.css to library
- append lib: to default QE_PATH
- clean up ancillary files
- [Idea] dynamic project based settings, include, exclude patterns...
- commands:
parse_arg()should handle default argument values - commands: pass raw prefix argument
Pas combination of has_arg (flags) and argval (number) eval-expressionshould evaluate region if highlighted?
Colors and styles
- [BUG] preserve static styles in
do_convert_buffer_file_coding_system() - optimize style transfer in
eb_insert_buffer_convert() - add color themes
- fix colors, default schemes...
- add style recent changes (
highlight-recent-changes) - make styles and log buffers read-only and display as binary
- fix overlong line coloring
- make
style-buffer-modeandlog-buffer-mode
Modes
Generic mode stuff
- basic: register modes recursively along fallback chain
- modes:
next-modeshould include bufferdefault_modein list - tags: remove tags for modified line
- mode inheritance
- basic: stop copying
ModeDefstructures to implement inheritance - basic: fix mode setting mess
- modes: split modes into colorizers, interaction, io, charset, eoltype
- modes: major and minor modes
- rethink mode specific commands -> add inheritance for all commands ?
- add
mode_commandsandglobal_commandstables inModeDefstructure
C mode
- allman and other styles
- epita style
- auto remove trailing spaces and add final newline
- colorizing bug:
static int (*qe__initcall_first)(void) qe__init_call = NULL; - align multi line comments leading * one space to the right
- fix C indentation inside comments
- fix C indentation inside struct, array and enum initializers
- automatic indentation detection
c-indentindent-with-tabs- stats command for
slcc - improve tag support:
- missed tag:
static int (*qe__initcall_first)(void) qe__init_call = NULL; - tag multiple files and buffers
- tag project files recursively
- handle multiple tag files
- save tags to QTAGS or .qetags file
- update tag files automatically
list-tagsandlist-matching-linespopups should be clickable and go to the match use locus properties?list-definitionswith hot load functionshow-definitionin popup- handle standard libraries with tag system
- generate #include lines automatically
- missed tag:
- autocomplete keyword, function, variable, member names
c-modedescendants:- TAB at end of line or in space before \ should align on \ from previous line
- preserve macro \ alignment when editing
- see if java/javascript/c++ is OK.
as-mode: ActionStript filesawk-mode- C++ mode
objc-mode: Objective Ccsharp-mode: C#d-modejava-modejavascript-mode,js-mode-> javascript filesjson-modescala-modeyacc-modego-modeidl-modetypescript-modejspp-mode: JS++vala-modecuda-mode
electric-c-mode
Markdown modes
- recognise
~~~ {.c}language tags - cooked markdown mode for documentation
- use cooked markdown mode for help system
a_bb_cshould not detectbbas underlinedmarkdown-mode: syntax modes for toml, bash (bash output), sh, text, txt
Outline / Org mode
- outline styles
- implement hide / show regions
Preview mode
- use minor mode keymap to exit preview mode with
KEY_RET - add auto skip feature at top and bottom of file to skip to the previous and/or next file in the preview mode
- typing text should
auto-search - typing text could ask for exiting preview-mode
- prevent edit in browse mode (currently called
preview-mode)
Shell mode
- [BUG] ^C does not work on OpenBSD
C-x RET RETshould switch to last process buffer selected and move to the end of bufferC-x RET RETshould find another shell buffer if*shell*has been killed. Should enumerate all buffers.- terminal emulation: when move inserts spaces, they should have default attributes: add test cases
C-c C-cshould abort make process and other shell buffers- support
:as alternate escape sequence argument separator start-shellshould kill popup windowA-x kill-buffer RET-> hang- turn on interactive mode on commands that move the cursor to EOB
- use auxiliary buffer to make process input asynchronous
- give commands a chance to execute for macros to behave correctly
A-yat process prompt- fix very long lines in shell buffer (not finished)
- fix screen size notifications,
SIGWINCHsignals and ioctl - fix terminal size inside shell window ?
- other buffer modification functions in shell input region
tty_put_charshould convert charsets- set current directory of new shell buffer to that of current window
- current path in compile set to current buffer path
- current path retrieved from shell prompt backwards from point
- fix bof/eof shell mode
- allow quoting of special keys: let
do_charinsert xterm/vt100 key sequence to allow typing special keys into shell process - cmdline arg to force lines and columns to test shell.
- toggling interactive shell mode is not automatic enough
- use target window for man and similar commands
- fix infinite scroll for man command
- man output bug on linux
- man pager -> more bindings, such as
RET->push-button(jump to map page) - accented letter input in shell mode
- transcode between tty charset and shell buffer charset
- track unsupported escapes in shell buffer
- use colorized buffer for trace buffer to flag tty input, shell output, supported and unsupported escapes.
telnet-mode: Connect to a remote computer using telnet- ssh: should use the host name and get files via scp syntax
- fix tty emulation to run kilo inside the process window
shell-command-on-regiononM-|mg: Pipe text from current region to external command. emacs: Execute string COMMAND in inferior shell with region as input. Normally display output (if any) in temp buffer*Shell Command Output*; Prefix arg means replace the region with it. Return the exit code of COMMAND.
Dired
- dired view with outline and expand/collapse
- dired view with generalized file matcher
- dired: use window/buffer caption for directory and sizes description
- dired: display directory links as directories and links, group with directories
- dired: fork process and use asynchronous function to:
- list directory contents
- track directory contents file stats
- compute subdirectory sizes
- keep dired current file upon:
RET C-x C-k RET - use buffer specific load functions
- separate buffer for each directory
- adjust dired gutter width for max name length
- snap dired left window horiz scroll
- make dired left window temporary popleft window
- improve dired (file commands, nicer display)
- t ->
dired-touch - | ->
dired-shell-command - D ->
dired-mkdir
- t ->
Bufed
- show current directory for shell buffers in buffer list view
- dired: use window/buffer caption for headings and sizes description
XML / HTML
-
[Idea] http request with headings
-
merge xml and htmlsrc modes, add submodes for plist and other config files
-
xml/htmlsrc: scan for
</script>beyond end of very long line -
‌-> zero width causes missing chars at end of line -
html
mode_probefails on junk/Books/881256329.epub/OEBPS/Attributes.xhtml when cycling -
html: preview mode does not work
-
html: checksum stuff does not work
-
html/xml: fix colorizer for multi-line tags and attributes
-
[BUG] xml: crash bug on johnmacfarlane.net/texmath.xhtml
-
html-mode: support hex entities -
add syntax based wrapping mode for very long lines
-
distribute libqhtml as a separate project
-
OPTIMIZE
eb_nextcet al or always duplicate box content (big speed improvement). -
polish end of line offset/cursor displacement support.
-
handle implicit TR
-
add file referencing (, , etc...)
-
fix LI numbering with VALUE attribute (cannot use CSS). Verify counter-reset semantics.
-
(z-index) floats must be displayed after all other stuff.
-
is sometimes incorrect.
-
more font style synthesis in html2ppm.
-
add xml CDATA parsing
TeX / latex
info-mode: unix info mode- improve
latex-mode- mode for tek style sheets
- mode for texi intermediary files
- latex-mode: LaTeX documents.
- bibtex-mode
- tex-mode: TeX or LaTeX documents.
- create tags
Hex mode
- merge
hex-modeandbinary-mode hex-modeandbinary-modeshould have an initial skip value to align the display on any boundary- extend
hex-modeto support 16,32,64 bit words as little and big endian - optimize display for very large
display-widthin binary and hex modes - save
display-widthin binary and hex modes upon window change - display alternate cursor in non active column in hex mode.
Archive mode
- archive: issue with current directory
- archive: add API to register new file formats
- archive: use window/buffer caption for output description
- make archive mode use dired commands
- compress mode file save to compressed format
Images / Video / Bitmaps
- fix ffmpeg support
- filtered scaling
- zoom, pan, rotate, describe, peek-color, histogram...
- multiview, wallpaper...
- use screen aspect-ratio...
- display info on modeline
- prevent display if not invalid
- improve image viewer on X11.
Syntax modes
- modes: add language word lists: literals and builtins
- text based language modes: token patterns, word lists, indentation spec
- create tags in other languages: fds
_STYLE_FUNCTION - improve existing language modes:
ada-mode: create tagsagena-mode: create tagsats-mode: create tagsasm-mode: handle various assembly stylescalc-mode: fix syntax, disable C++ commentscmake-modecobol-modecoffee-mode: create tagscss-modeelm-mode: create tagselixir-mode: create tagserlang-mode: create tagsfcl-modeforth-modefortran-mode: create tagsgroovy-mode: create tagshaskell-mode: create tagsicon-mode: create tagsini-mode: Windows .ini files.jai-mode: create tagsjulia-mode: create tagslisp-modelua-mode: create tagsmakefile-mode: Gnu and other makefiles.nim-mode: create tagsocaml-mode: create tagspascal-mode: create tagsperl-modephp-mode: improve coloringpostscript-mode: more restrictive matchpython-mode: create tagsr-mode: create tagsruby-mode: create tagsrust-mode: create tagsscad-mode: create tagsscheme-modescilab-modesh-mode: Handle here documentssh-mode: Handle multiline stringssh-mode: shell script filessql-modeswift-mode: create tagsvbasic-mode: more restrictive matcher because .cls files may be latexvirgil-mode: create tagsvim-mode: create tags
- missing languages:
asp-mode:automake-mode:bat-mode: DOS command.com batch files.bazel-modefor build system (*.bzl, BUILD...)bennugd-modebluespec-modeboo-modecg-modechangelog-modechdr-modecmd-mode: Windows cmd.exe command files.conf-mode: configuration files.DCL-modedef-modedesktop-modediff-modedoc-modedocbook-modedosbatch-modedot-modedpatch-modedtd-modeeiffel-modeexelis-modefsharp-modegams-mode: GAMS files.gap-modeglsl-modegtkrc-modehaddock-modeimagej-modej-modelanguage-modelibtool-modeliterate-modelog-modem4-mode: M4 macro processor filesmaildrop-mode: for .mailfiltermallard-modematlab-modemediawiki-modemodelica-modemxml-modenemerle-modenetrexx-modenroff-modensis-modeobjj-modeocl-modeoctave-modeooc-modeopal-modeopencl-modepatch-modepkgconfig-modepo-mode: translation filesprolog-modeprotobuf-modepuppet-moderpmspec-modesml-modesparql-modesystemverilog-modet2t-modetcl-mode: Tcl files.texinfo-modevbnet-modeverilog-modevhdl-mode: VHDL files.xslt-mode- qmake, cmake, scons, ant, maven, bitC
New modes
rst-mode: support ReStructuredText (RST)auto-compression-mode- minor modes with key override such as "preview" mode
visual-diff-mode: Use color-coding to compare two buffers.- calculator / spreadsheet mode (based on SC)
- calendar mode
- email reader mode: mail / rmail
- news reader mode
- irc client mode
- rss
- wikipedia mode
- abbreviation mode
- ispell / spell checker
- printing support