automatic case-analysis code generation,
added Editor.nw in docs/literate/ from principia
based on the Python parser and highlighter in Pfff.
especially useful for Python and Javascript code
based on the Javascript parser and highlighter in Pfff.
(finally deserve to be called an Emacs clone)
and report it also for Failure exn
otherwise it’s like Alt is still on
to support type and ocamldoc information under cursor, jump-to-definition, jump-to-interface, completion, search-def
use fuzzy tree to correctly handle nested elements, and support and [< >] correctly (different lexing rules).
can now compile Efuns for Linux, Windows, and macOS
so can have efuns interact with other applications (e.g., web browser)
use [@@interactive] attribute (thx to my ppx_interactive extension)
cairo seems obsolete; I can not even install it with OPAM with recent versions of OCaml. Also cairo2’s maintainer is very responsive (he quickly added the support for Pango fonts that I needed).
with special support for pfff-based modes
but using pfff code database instead of TAGS file
working M-x compile, with colors, with C-n working (for ocaml errors) and internally using variables rather than major mode interactives patches
better ls in eshell, multi cols, correctly sorted, hiding object files
with variable font size for important entities (a la Code thumbnails of visual studio) for pfff-based major modes
M-w (copy_region) M-c (capitalize_words) C-s C-w (incomplete though) Top|Bot|% for line in status line C-u C-space (position history navigation) correct order for history of visited buffers blinking cursor (using a simple thread)
scroll other windows buffer menu C-M-Tab, C-M-l and right order
- split efuns.ml and simple.ml in many more modules
- add more .mli
- more use of with_dup_point, with_new_point, with_session
- lots of renaming to make it easier to explain things in Efuns.nw
also use pfff/h_visualization/simple_color.ml for emacs style color names
(based on my dircolors.el plugin for emacs)
for Caml, C/C++, and TeX/Noweb, with correct and more highlightings for identifiers (e.g. differentiate fields from parameters from locals).
- maintain a “goal column” when goes up and down in a file, similar to Emacs
- files and directories reorganization, pad’s style
- LPization (literate programming restructuring, with help from syncweb)
- removed many opens
- use global for location
- reorg main.ml to use less toplevels and pack in a main() function
- use more List.iter, Common.do_option, |>, with_session, with_dup_point
- added many .mli
- factorize color in pl_colors.ml
===========
- new function [search_backward_groups]
- new function [end_env] bound on “C-c ]”
- new function [new_env] bound on “C-c E”
===========
time Efuns is created. In particular, keys/menus binding can be specified there, and also fonts and colors.
- In “query-replace-…”, the second cursor shows where the point is.
- In “query-replace-…”, the cursor always moves when ‘y’ or ‘n’ is pressed.
===========
- New program [efuns_filebrowser] to display directories like trees with
shell-regexps on names, and click to edit with efuns_server.
- New interactive function “start-server” to make Efuns listen on a local port.
- New program [efuns_server] to force an efuns server to load a file.
- New program [efuns_texbrowser] to display a LaTeX file as a tree, and call [efuns_server] to edit clicked parts.
- New interactive function “tex-browse” to start efuns_texbrowser.
- A SIG_KILL signal is sent to an inferior process when its buffer is killed.
- Added one scrollbar per top frame.
- More abbrevs are available (map’a for Array.map, cop’a for Array.copy, sub’a for Array.sub, etc).
- Dependencies toward Ocaml version moved to ocamlsrc/compat_comp.ml
- ocaml_mode.mli doesn’t contain names generated by ocamllex (thanks to Loic Correnson).
- Keys in scrollbars and menus are normally processed.
============
- Added some indentation and more colorization.
- Menus at top.
- Mouse driven file selection in [File:Open] item.
===========
- bug fixed in regexp searches (cause a bug to appear in [fill_paragraph])
- [C-c Return] in a \input line open the corresponding file.
- [C-c Down] to select a main file, [C-c Up] goto main file, [C-c Left] goto previous \input file, [C-c Right] goto next \input file.
- [C-M-Left] and [C-M-Right] circulate between buffers.
- [C-M-Down] to select a buffer, and [C-M-Up] to go to the selected buffer.
===========
- Colors can be modified by [set-parameter].
- New functions [tex-comment-region] [C-c %], and [tex-uncomment-region] [C-c C-u %].
- [Return] in comment line creates a new comment line.
- Lines starting with \OT1 are not used while looking for errors.
- Bug fixed in printing key strokes.
==========
===========
- new interactive function [grep] to call Unix grep command and find occurrences in files.
============
[+] add a directory, [-] remove an entry, [g] update, [Return] open file, [v] fast view file (start xv, gzip, etc depending of the file extension).
- loading a directory creates a buffer with the files (~ ls -l).
- better name formatting (thanks to utils.normal_name).
command is “make …” or “?make …” (can be avoided by modifying the parameter Compil.compile_find_makefile).
- [C-button1] on a word triggers “find_implementation”.
- [C-c C-BackSpace] to come back after find_implementation.
- Colors are defined by parameters vars_color, rules_color and target_color.
============
- Added [M-x set-local-variable, set-global-variable, get-variable and set-parameter, get-parameter] (Parameters are Ocaml refs, while variables are Local.var variables).
- Added [M-x eval] to evaluate an ocaml string.
- Labels for keymaps, modes and local vars renamed.
- New types for major and minor modes, with own maps.
- maps contain names for interactives (M-x) calls.
- Added MetaControlMap
- Meta modifier can be modified (Keymap.meta)
- find_type and find_implementation try to compile the buffer to find the type or the definition (using ocaml_path).
- Some parameters are configurable through set-parameter (colors, fonts, paths).
============
============
corrected (thanks to J.G. Malecki)
============
Compile changed to Compil to avoid a clash with one of the toplevel modules.
===========
Examples of used ressources:
Efuns*foreground: black Efuns*width: 80 Efuns*height: 55 Efuns*font: -misc-fixed-medium-r-normal–0-0-75-75-c-70-iso8859-1 Efuns*font: 6x13
and for Ocaml colors:
Efuns*ocaml.color.comment: blue Efuns*ocaml.color.upper: black Efuns*ocaml.font.upper: -misc-fixed-bold-r-normal–0-0-75-75-c-70-iso8859-1 Efuns*ocaml.font.upper: 6x13bold Efuns*ocaml.font.keyword: 6x13bold Efuns*ocaml.font.comment: -*-*-*-i-*-*-13-*-*-*-*-60-*-*
- Completions errors in mini-buffer (no more out-of-bound access)
=================
a trous (^^) qui peuvent etre parcourus avec [C-c -].
- Mode Ocaml: [C-c b] insere “begin ^^ end”, etc …
- Mode Tex: [C-c 1] insere “\section{^^} ^^”, etc …
- Mode HTML: [C-c 1] insere “<H1> ^^ </H1> ^^”, etc …
- compatibilité avec les mots cles JoCaml
- recherche des erreurs d’ ocamllex
- positionnement correct du curseur après une délétion avant le point.
- fill_paragraph correct
=================
l’highlighting.
- passage automatique à la ligne après 75 caractères (electric_insert_space)
- formattage de paragraphe (fill_paragraph)
- Mise en évidence des associations de parenthèses (highlight_paren)
évidence de la région lors d’un drag
point courant.
après l’exécution d’un module (démarrage et ensuite). Ajout de hooks, tels que handle_key_start_hook et handle_key_end_hook. Fonctions pour gérer les hooks dans Efuns.
avec n’importe quel flèche.
remplacement par ~ lors de l’affichage des fichiers.
- plus de décallages dans les recherches/remplacements
- coloriage correct des commentaires en Caml
- curseur bien placé en fin de ligne
=================
M-x.
un buffer Ocaml (eval-buffer) dans l’éditeur pour le modifier. Possibilité de charger un fichier .cmo dans l’éditeur (load-library). Utilisation de la librairie Dynlink étendue au code natif.
et de variables locales à un buffer ou à une frame.
et l’indentation.
- Compilation (ocaml-compile) et recherche d’erreurs (ocaml-next-error)
- Coloriage (ocaml-color-buffer)
- Indentation (ocaml-indent-phrase, ocaml-indent-buffer, ocaml-indent-line)
- Abbréviations statiques (len’s –> String.length, …)
- Aides à la programmation: recherche du type d’une valeur dans les fichiers .cmi (ocaml-print-type)
intéractives et les fichiers, avec regexps à éviter).
replace-string, replace-regexp, query-replace-string, query-replace-regexp
isearch-forward, isearch-forward-regexp, isearch-backward, isearch-backward-regexp
- Coloriage
- Tabulation
- Coloriage
transpose-words, forward-word, backward-word, delete-forward-word, delete-backward-word
expand-dabbrev, expand-sabbrev
la communication entre applications X par CUT_BUFFER: set-active-frame, insert-at-point, mouse-save-then-kill
accents-mode
display (window-load-buffer, window-change-buffer, delete-window)
vertical-cut-frame, horizontal-cut-frame, next-frame)
(par ensembles de modifications)
================= First public release