17 KiB
- Needed for release version 5
- Priority 0
- shell: turn on interactive mode on M-> and some other commands that move
- basic: reset last command when executing macro
- extra: add function to add entry in TOTO.org
- clang: indentation bug on {\nputchar(expr ? 'a' : 'b');\n}
- completion: completion behaviour on SPC
- shell: yank at shell prompt
- edit: track file modifications and reload upon change
- Priority 1
- basic: improve speed: C-x C-f ~/x2m RET A-r 20140101 RET 20140101 RET -> 96s
- basic: improve speed: C-x C-f ~/x2m RET C-u 1000 C-n -> 4s
- basic: check abort during long operations: bufferize input and check for ^G
- basic: share mmapped pages correctly
- basic: show memory stats in describe-buffer and about-qemacs
- basic: fix mode setting mess
- basic: fix default wrap setting mess
- basic: fix fuzzy completion when single unanchored match
- basic: make styles and log buffers read-only and display as binary
- basic: optional 64 bit offsets on 64 bit systems
- basic: use rune and u8 types
- basic: auto/mixed eol mode
- basic: fix behaviour on overlong lines
- basic: fix offset when exiting s->hex_mode
- completion: minibuffer completion: bad return on C-x C-f . SPC qe SPC RET
- completion: fix selection hilite in popup-view
- completion: remove or update popup-view as more typing occurs
- completion: use fuzzy or glob matcher
- dired: find-file should explore directory in the left pane
- dired: display directory links as directories and links
- doc: migrate TODO and documentation to markdown or reStructuredText
- doc: migrate coding-rules.html to markdown
- doc: rewrite TODO file with more sections and explanations
- files: handle files starting with re:
- files: check file permissions.
- files: use trick for entering spaces in filename prompts without completion
- files: check file date to detect asynchronous modifications on disk
- files: fix s->offset reset to 0 upon C-x C-f newfile ENT C-x 2 C-x b ENT
- files: insert-file: load via separate buffer with charset conversion
- files: reload-file on C-x C-r
- html: ‌ -> zero width causes missing chars at end of line
- html: mode_probe fails on junk/Books/881256329.epub/OEBPS/Attributes.xhtml when cycling
- html: preview mode does not work
- html: checksum stuff does not work
- macros: allow redefining the keyboard macro embedding itself
- macros: show-macro, dump-macro to ease macro debugging and timing
- macros: fix macro slowliness in 6000 line buffer junk/dirs/x
- macros: do not use visual movement inside macros (definition and execution)
- macros: do not redisplay during macro execution, esp with prefix
- macros: check for abort during repeated command execution
- macros: check for failure during repeated command execution
- minibuf: use more mode specific bindings
- minibuf: minibuffer-electric-yank in minibuffer to fix pathname
- minibuf: minibuffer input ~ should not kill http: prefix
- screen: check coordinate system to 1000 based with optional sidebars
- search: add regex support
- search: hex-mode search strings should mix hex ut8 strings and ASCII control char names
- search: delete-matching-lines
- search: make isearch bindings for minibuffer
- session: previous answers, …
- session: register session store functions
- shell: fix current directory for process buffer
- shell: handle long shell lines
- shell: integrate kill/paste including multiple lines
- shell: fix crash bug when invoking qemacs recursively in the terminal
- shell: set current directory of new shell buffer to that of current window
- shell: set qemacs default directory to that of shell window upon cd command
- shell: yank at shell prompt
- syntax: fix overlong line coloring
- syntax: support ReStructuredText (RST)
- text: \u200c -> zero width
- tiny: remove extra features
- undo: kill redo list when forking after undo
- undo: undo should handle sequence of undo records upto tagged start.
- undo: add disable-undo for tests and benchmarking
- view-mode: typing text should auto-search
- x11: handle X11 window manager close window event and exit cleanly
- archive: add API to register new file formats
- Priority 2
- basic: better display of invalid utf-8 encodings
- basic: indent-rigidly
- basic: scripting
- basic: fix colors, default schemes…
- basic: disable messages from commands if non-interactive (eg: set-variable)
- basic: make style-buffer-mode and log-buffer-mode
- charset: handle chinese encodings
- charset: handle euc-kr
- charset: autodetect sjis, euc-jp…
- c-mode: fix c indentation inside comments
- c-mode: fix c indentation inside struct, array and enum initializers
- dired: keep dired current file upon: RET C-x C-k RET
- dired: fork for directory scan, background inode tracking, dir size scan
- hex: extend hex mode to support 16,32,64 bit words as little and big endian
- html/xml: merge xml / htmlsrc modes
- html/xml: fix colorizer for multi-line tags and attributes
- macros: improve dump-macro to convert macro to string
- macros: fix dump-macro to save/restore last-kbd-macro to/from session
- macros: do not store messages during repeated macro execution or limit buffer size
- macros: name-last-kbd-macro
- macros: fix source syntax issues
- modes: header-line format
- modes: mode-line format
- modes: major and minor modes
- modes: split modes into colorizers, interaction, io, charset, eoltype
- script: expression evaluator
- search: add low-level accelerator function
- search: use do_isearch to input string for do_search_string
- search: use do_isearch to input string for do_query_replace (might need recursive edit)
- search: count-matches
- search: count-words, wc
- search: stats command for word count and mode specific stats
- search: improve speed finally
- undo: limit size of undo buffers
- undo: add undo records for styles, modes…
- undo: disable undo for archive parse and uncompress phases
- undo: compress logs and limit size
- variables: set variable values via function pointer
- variables: add boolean variables
- Priority 3
- Basic stuff
- crash bug on johnmacfarlane.net/texmath.xhtml
- abbreviate lines in file completion list popup
- wrap long lines past line numbers column
- tty_put_char should convert charsets
- current path in compile set to current buffer path
- avoid error in new file
- add custom memory handling functions.
- use failsafe memory allocator and longjmp recover.
- redefine KEY_Fx to make them sequential
- move ungot_key to key_context
- static init_call stuff ?
- add default charset for new buffer creation, set that to utf8
- splitting pages should fall on 32 bit boundaries (difficult)
- handle broken charset sequences across page boundaries
- add command help/description in declarations
- make command declaration macros standalone
- allow recursive main loop, and remove input callbacks
- fix column computation based on display properties:
- synced virtual buffers with restricted range
- unsynced virtual buffers with restricted range and specific mode/charset
- spell checker
- printing support
- bfs: built in file system for embedded extensions and files
- notes
- C-x x next-buffer ??? Move to the next buffer.
- abbreviation mode
- qe_realloc: typed and clear reallocated area
- Moving / Editing
- remote editing
- blink-and-insert on ) } ] >
- fix scroll up/down to move point if already at end
- move by paragraph on M-[ and M-]
- scroll horizontally on M-{ and M-}
- scroll up/down with argument should scroll by screen row.
- simplify C-z A-z accordingly
- accented letters on OS/X
- combining unicode glyphs produce bogus cursor positions
- deal with accents in filenames (OS/X uses separate utf8 accents)
- 256 color mode
- auto-fill-mode
- auto-revert-mode, global-auto-revert-mode, auto-revert-tail-mode
- rectangular regions, cut/paste
- Windowing / Display
- window scrolling not emulated in tty (check ^Z in recursive eps)
- multiple frames
- lingering windows
- cursor not found on doc/256colors.raw if truncate-lines=1
- enlarge-window-interactively
- enlarge-window-horizontally
- enlarge-window
- tab cursor displayed size
- improve speed of text renderer / improve truncate mode
- display alternate cursor in non active column in hex mode.
- fix crash bug on fragments longer than MAX_SCREEN_WIDTH.
- vertical scroll bar
- menu / context-menu / toolbars / dialogs
- improve layout scheme for better scalability.
- scrolling by window size should position cursor differently
- emulation mode to use line-drawing characters for window borders
- Clean window deletion mess:
- Search / Replace
- Unicode / bidir
- X11 display / graphics
- clip display by popup size
- move -nw cmd line option to tty.c and make term_probe return better score
- remember X11 window positions and restore layout ?
- improve image viewer.
- 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_font should never return NULL, must have a system font.
- Outline / Org mode
- C mode
- HTML mode
- distribute libqhtml as a separate project
- OPTIMIZE eb_nextc et al or always duplicate box content (big speed improvement).
- polish end of line offset/cursor displacement support.
- handle implicit TR
- add file referencing (<?xml-stylesheet type="text/css" href="xxx"?>, <link>, etc…)
- fix LI numbering with VALUE attribute (cannot use CSS). Verify counter-reset semantics.
- (z-index) floats must be displayed after all other stuff.
- <NOBR> is sometimes incorrect.
- more font style synthesis in html2ppm.
- add xml CDATA parsing
- Shell
- fix bof/eof shell mode
- allow quoting of special keys : let do_char insert xterm/vt100
- fix terminal size inside shell window ?
- cmdline arg to force lines and columns to test shell.
- toggling interactive shell mode is not automatic enough
- 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
- doctor command should create and show trace buffer, remove eb_new kludge
- 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
- Dired
- Modes
- compress mode file save to compressed format
- auto-compression-mode
- rethink mode specific commands -> add inheritance for all commands ?
- mode inheritance
- calculator / spreadsheet mode
- calendar mode
- email reader mode: mail / rmail
- news reader mode
- irc client mode
- ispell
- rss
- set-gosmacs-bindings
- wikipedia mode
- info-mode: unix info mode
- improve latex-mode
- vim mode.
- minor modes with key override such as "preview" mode
- merge hex-mode and binary-mode
- mode for undo buffers
- visual-diff-mode: Use color-coding to compare two buffers.
- improve existing language modes:
- ada-mode
- asm-mode: handle various assembly styles
- calc-mode: fix syntax, disable C++ comments
- cobol-mode
- css-mode
- erlang-mode
- fcl-mode
- forth-mode
- fortran-mode
- haskell-mode
- html-mode: support hex entities
- julia-mode
- lisp-mode
- lua-mode
- makefile-mode: Gnu and other makefiles.
- markdown-mode: syntax modes for toml, bash (bash output), sh, text, txt
- ocaml-mode
- pascal-mode
- perl-mode
- php-mode
- postscript-mode: more restrictive match
- python-mode
- r-mode
- ruby-mode
- scheme-mode
- scilab-mode
- sh-mode: Handle here documents
- sh-mode: Handle multiline strings
- sh-mode: shell script files
- sql-mode
- vbasic-mode: more restrictive matcher because .cls files may be latex
- missing languages:
- asp-mode:
- automake-mode:
- batch-mode: Windows Batch files.
- bennugd-mode
- bluespec-mode
- boo-mode
- cg-mode
- changelog-mode
- chdr-mode
- cmake-mode
- conf-mode: configuration files.
- cuda-mode
- DCL mode
- def-mode
- desktop-mode
- diff-mode
- doc-mode
- docbook-mode
- dosbatch-mode
- dot-mode
- dpatch-mode
- dtd-mode
- eiffel-mode
- exelis-mode
- fsharp-mode
- gams-mode: GAMS files.
- gap-mode
- glsl-mode
- gtkrc-mode
- haddock-mode
- imagej-mode
- ini-mode: Windows .ini files.
- j-mode
- language-mode
- libtool-mode
- literate-mode
- log-mode
- m4-mode: M4 macro processor files
- maildrop-mode: for .mailfilter
- mallard-mode
- matlab-mode
- mediawiki-mode
- modelica-mode
- mxml-mode
- nemerle-mode
- netrexx-mode
- nroff-mode
- nsis-mode
- objj-mode
- ocl-mode
- octave-mode
- ooc-mode
- opal-mode
- opencl-mode
- patch-mode
- pkgconfig-mode
- po-mode: translation files
- prolog-mode
- protobuf-mode
- puppet-mode
- rpmspec-mode
- sml-mode
- sparql-mode
- systemverilog-mode
- t2t-mode
- tcl-mode: Tcl files.
- texinfo-mode
- vala-mode
- vbnet-mode
- verilog-mode
- vhdl-mode: VHDL files.
- xslt-mode
- syntax: look at qmake, cmake, scons, ant, maven…
- syntax: look at typescript, bitC
- Ideas from other editors
- prevent edit in browse mode
- dynamic project based settings, include, exclude patterns…
- electric-c-mode
- http request with headings
- save file to non existent path -> create path.
- dired view with outline and expand/collapse
- dired view with generalized file matcher
- open file with fuzzy completion
- execute command with fuzzy completion
- completion with fuzzy matching
- find-file: gist:snippet
- new flavor for GoogleClosureCompiler
- handle or remove extra code page files:
; TODO list for qemacs ; ; Author: Charles Gordon ; Updated: 2016-03-06
Needed for release version 5
Priority 0
shell: turn on interactive mode on M-> and some other commands that move
the cursor to the end of file
basic: reset last command when executing macro
extra: add function to add entry in TOTO.org
clang: indentation bug on {\nputchar(expr ? 'a' : 'b');\n}
completion: completion behaviour on SPC
shell: yank at shell prompt
edit: track file modifications and reload upon change
Priority 1
basic: improve speed: C-x C-f ~/x2m RET A-r 20140101 RET 20140101 RET -> 96s
basic: improve speed: C-x C-f ~/x2m RET C-u 1000 C-n -> 4s
basic: check abort during long operations: bufferize input and check for ^G
basic: share mmapped pages correctly
basic: show memory stats in describe-buffer and about-qemacs
basic: fix mode setting mess
basic: fix default wrap setting mess
basic: fix fuzzy completion when single unanchored match
basic: make styles and log buffers read-only and display as binary
basic: optional 64 bit offsets on 64 bit systems
basic: use rune and u8 types
basic: auto/mixed eol mode
basic: fix behaviour on overlong lines
basic: fix offset when exiting s->hex_mode
completion: minibuffer completion: bad return on C-x C-f . SPC qe SPC RET
completion: fix selection hilite in popup-view
completion: remove or update popup-view as more typing occurs
completion: use fuzzy or glob matcher
dired: find-file should explore directory in the left pane
dired: display directory links as directories and links
doc: migrate TODO and documentation to markdown or reStructuredText
doc: migrate coding-rules.html to markdown
doc: rewrite TODO file with more sections and explanations
files: handle files starting with re:
files: check file permissions.
files: use trick for entering spaces in filename prompts without completion
files: check file date to detect asynchronous modifications on disk
files: fix s->offset reset to 0 upon C-x C-f newfile ENT C-x 2 C-x b ENT
files: insert-file: load via separate buffer with charset conversion
files: reload-file on C-x C-r
html: ‌ -> zero width causes missing chars at end of line
html: mode_probe fails on junk/Books/881256329.epub/OEBPS/Attributes.xhtml when cycling
html: preview mode does not work
html: checksum stuff does not work
macros: allow redefining the keyboard macro embedding itself
macros: show-macro, dump-macro to ease macro debugging and timing
macros: fix macro slowliness in 6000 line buffer junk/dirs/x
macros: do not use visual movement inside macros (definition and execution)
macros: do not redisplay during macro execution, esp with prefix
macros: check for abort during repeated command execution
macros: check for failure during repeated command execution
minibuf: use more mode specific bindings
minibuf: minibuffer-electric-yank in minibuffer to fix pathname
minibuf: minibuffer input ~ should not kill http: prefix
screen: check coordinate system to 1000 based with optional sidebars
search: add regex support
search: hex-mode search strings should mix hex ut8 strings and ASCII control char names
search: delete-matching-lines
search: make isearch bindings for minibuffer
session: previous answers, …
session: register session store functions
shell: fix current directory for process buffer
shell: handle long shell lines
shell: integrate kill/paste including multiple lines
shell: fix crash bug when invoking qemacs recursively in the terminal
shell: set current directory of new shell buffer to that of current window
shell: set qemacs default directory to that of shell window upon cd command
shell: yank at shell prompt
syntax: fix overlong line coloring
syntax: support ReStructuredText (RST)
text: \u200c -> zero width
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"
tiny: remove extra features
undo: kill redo list when forking after undo
undo: undo should handle sequence of undo records upto tagged start.
undo: add disable-undo for tests and benchmarking
view-mode: typing text should auto-search
x11: handle X11 window manager close window event and exit cleanly
archive: add API to register new file formats
Priority 2
basic: better display of invalid utf-8 encodings
basic: indent-rigidly
basic: scripting
basic: fix colors, default schemes…
basic: disable messages from commands if non-interactive (eg: set-variable)
basic: make style-buffer-mode and log-buffer-mode
charset: handle chinese encodings
charset: handle euc-kr
charset: autodetect sjis, euc-jp…
c-mode: fix c indentation inside comments
c-mode: fix c indentation inside struct, array and enum initializers
dired: keep dired current file upon: RET C-x C-k RET
dired: fork for directory scan, background inode tracking, dir size scan
hex: extend hex mode to support 16,32,64 bit words as little and big endian
html/xml: merge xml / htmlsrc modes
html/xml: fix colorizer for multi-line tags and attributes
macros: improve dump-macro to convert macro to string
macros: fix dump-macro to save/restore last-kbd-macro to/from session
macros: do not store messages during repeated macro execution or limit buffer size
macros: name-last-kbd-macro
macros: 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" "\<>\<>")
modes: header-line format
modes: mode-line format
modes: major and minor modes
modes: split modes into colorizers, interaction, io, charset, eoltype
script: expression evaluator
search: add low-level accelerator function
search: use do_isearch to input string for do_search_string
search: use do_isearch to input string for do_query_replace (might need recursive edit)
search: count-matches
search: count-words, wc
search: stats command for word count and mode specific stats
search: improve speed finally
undo: limit size of undo buffers
undo: add undo records for styles, modes…
undo: disable undo for archive parse and uncompress phases
undo: compress logs and limit size
variables: set variable values via function pointer
variables: add boolean variables
Priority 3
Basic stuff
crash bug on johnmacfarlane.net/texmath.xhtml
abbreviate lines in file completion list popup
wrap long lines past line numbers column
tty_put_char should convert charsets
current path in compile set to current buffer path
avoid error in new file
add custom memory handling functions.
use failsafe memory allocator and longjmp recover.
redefine KEY_Fx to make them sequential
move ungot_key to key_context
static init_call stuff ?
add default charset for new buffer creation, set that to utf8
splitting pages should fall on 32 bit boundaries (difficult)
handle broken charset sequences across page boundaries
add command help/description in declarations
make command declaration macros standalone
allow recursive main loop, and remove input callbacks
fix column computation based on display properties:
(variable pitch, tabs, ^x and \uxxxx stuff – emacs behaviour) ?
synced virtual buffers with restricted range
unsynced virtual buffers with restricted range and specific mode/charset
spell checker
printing support
bfs: built in file system for embedded extensions and files
Jasspa bfs is way too complicated, make simpler system
notes
C-x x next-buffer ??? Move to the next buffer.
abbreviation mode
qe_realloc: typed and clear reallocated area
Moving / Editing
remote editing
blink-and-insert on ) } ] >
fix scroll up/down to move point if already at end
move by paragraph on M-[ and M-]
scroll horizontally on M-{ and M-}
scroll up/down with argument should scroll by screen row.
simplify C-z A-z accordingly
accented letters on OS/X
combining unicode glyphs produce bogus cursor positions
example: V M-' this problem occurs if no combined glyph exists. qemacs does not take into account combination performed by the terminal. Terminal glyph width of 0 should be supported.
deal with accents in filenames (OS/X uses separate utf8 accents)
256 color mode
auto-fill-mode
auto-revert-mode, global-auto-revert-mode, auto-revert-tail-mode
rectangular regions, cut/paste
Windowing / Display
window scrolling not emulated in tty (check ^Z in recursive eps)
multiple frames
lingering windows
cursor not found on doc/256colors.raw if truncate-lines=1
enlarge-window-interactively
enlarge-window-horizontally
enlarge-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).
display alternate cursor in non active column in hex mode.
fix crash bug on fragments longer than MAX_SCREEN_WIDTH.
vertical scroll bar
menu / context-menu / toolbars / dialogs
improve layout scheme for better scalability.
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, split_window)
detach window from tree and keep attached to buffer if last
detach window from tree and put in delayed free tree otherwise
edit_close(s) do_delete_window(s) bufed_select(s) if vertical split dired_select(s) if vertical split do_less_quit(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()
Search / Replace
search: regex search/replace (use glibc 2.1 regex.c file)
search: query replace across multiple files
search: query replace options: u -> undo last change
Unicode / bidir
set_input_method() and set_buffer_file_coding_system() in config file.
fix kana input method
charset: add JIS missing encoding functions
add JIS charset probing functions
test Hebrew keymap support.
X11 display / graphics
clip display by popup size
move -nw cmd line option to tty.c and make term_probe return better score
remember X11 window positions and restore layout ?
improve image viewer.
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_font should never return NULL, must have a system font.
Outline / Org mode
outline styles
implement hide / show regions
C mode
c-indent
indent-with-tabs
stats command for slcc
add TAGS support:
recursive search of QTAGS file.
C decl parser
global QTAGS file indexed with global includes
see if java/javascript/c++ is OK.
autocomplete keyword, function, variable, member names
automatic indentation detection
c-mode descendants:
as-mode: ActionStript files
awk-mode
C++ mode
objc-mode: Objective C
csharp-mode: C#
d-mode
java-mode
javascript-mode, js-mode -> javascript files
json-mode
scala-mode
yacc-mode
go-mode
idl-mode
HTML mode
distribute libqhtml as a separate project
OPTIMIZE eb_nextc et al or always duplicate box content (big speed improvement).
polish end of line offset/cursor displacement support.
handle implicit TR
add file referencing (<?xml-stylesheet type="text/css" href="xxx"?>, <link>, etc…)
fix LI numbering with VALUE attribute (cannot use CSS). Verify counter-reset semantics.
(z-index) floats must be displayed after all other stuff.
<NOBR> is sometimes incorrect.
more font style synthesis in html2ppm.
add xml CDATA parsing
Shell
fix bof/eof shell mode
allow quoting of special keys : let do_char insert xterm/vt100
key sequence to allow typing special keys into shell process
fix terminal size inside shell window ?
cmdline arg to force lines and columns to test shell.
toggling interactive shell mode is not automatic enough
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
doctor command should create and show trace buffer, remove eb_new kludge
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
Dired
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
make archive mode use dired commands
Modes
compress mode file save to compressed format
auto-compression-mode
rethink mode specific commands -> add inheritance for all commands ?
mode inheritance
calculator / spreadsheet mode
calendar mode
email reader mode: mail / rmail
news reader mode
irc client mode
ispell
rss
set-gosmacs-bindings
wikipedia mode
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.
vim mode.
minor modes with key override such as "preview" mode
merge hex-mode and binary-mode
mode for undo buffers
visual-diff-mode: Use color-coding to compare two buffers.
improve existing language modes:
ada-mode
asm-mode: handle various assembly styles
calc-mode: fix syntax, disable C++ comments
cobol-mode
css-mode
erlang-mode
fcl-mode
forth-mode
fortran-mode
haskell-mode
html-mode: support hex entities
julia-mode
lisp-mode
lua-mode
makefile-mode: Gnu and other makefiles.
markdown-mode: syntax modes for toml, bash (bash output), sh, text, txt
ocaml-mode
pascal-mode
perl-mode
php-mode
postscript-mode: more restrictive match
python-mode
r-mode
ruby-mode
scheme-mode
scilab-mode
sh-mode: Handle here documents
sh-mode: Handle multiline strings
sh-mode: shell script files
sql-mode
vbasic-mode: more restrictive matcher because .cls files may be latex
missing languages:
asp-mode:
automake-mode:
batch-mode: Windows Batch files.
bennugd-mode
bluespec-mode
boo-mode
cg-mode
changelog-mode
chdr-mode
cmake-mode
conf-mode: configuration files.
cuda-mode
DCL mode
def-mode
desktop-mode
diff-mode
doc-mode
docbook-mode
dosbatch-mode
dot-mode
dpatch-mode
dtd-mode
eiffel-mode
exelis-mode
fsharp-mode
gams-mode: GAMS files.
gap-mode
glsl-mode
gtkrc-mode
haddock-mode
imagej-mode
ini-mode: Windows .ini files.
j-mode
language-mode
libtool-mode
literate-mode
log-mode
m4-mode: M4 macro processor files
maildrop-mode: for .mailfilter
mallard-mode
matlab-mode
mediawiki-mode
modelica-mode
mxml-mode
nemerle-mode
netrexx-mode
nroff-mode
nsis-mode
objj-mode
ocl-mode
octave-mode
ooc-mode
opal-mode
opencl-mode
patch-mode
pkgconfig-mode
po-mode: translation files
prolog-mode
protobuf-mode
puppet-mode
rpmspec-mode
sml-mode
sparql-mode
systemverilog-mode
t2t-mode
tcl-mode: Tcl files.
texinfo-mode
vala-mode
vbnet-mode
verilog-mode
vhdl-mode: VHDL files.
xslt-mode
syntax: look at qmake, cmake, scons, ant, maven…
syntax: look at typescript, bitC
Ideas from other editors
prevent edit in browse mode
dynamic project based settings, include, exclude patterns…
electric-c-mode
http request with headings
save file to non existent path -> create path.
dired view with outline and expand/collapse
dired view with generalized file matcher
open file with fuzzy completion
execute command with fuzzy completion
completion with fuzzy matching
find-file: gist:snippet
new flavor for GoogleClosureCompiler
handle or remove extra code page files:
APL-ISO-IR-68.TXT GSM0338.TXT SGML.TXT 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 cpdata.txt koi8_ru.cp