package ecaml
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Library for writing Emacs plugin in OCaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
ecaml-v0.16.0.tar.gz
sha256=d9c6f98e7b0906a7e3d332d1a30fe950b59586b860e4f051348ea854c3ae3434
doc/CHANGES.html
Release v0.16.0
- Ecaml is now built and tested against Emacs 27.2 (was Emacs 26.3).
- Stop loading library
cl.el, which is deprecated (Ecaml usescl-libnow instead). Basic data types
- Removed deprecated module type
Value.Type.Enum. Users should now useValue.Type.Enum.Sinstead. - Add
Filename.extension, a wrapper forfile-name-extension. - Add
Emacs_version.major_version, a wrapper for variableemacs-major-version. - Add
Hook.Function.symbol, which retrieves the name of a given hook function. Process.call_exnnow accepts an optional?stderrargument, which specifies what to do with the standard error output from the process. The default,Mix, retains the old behavior of interleaving it with the standard output. It can also be dropped withDrop_if_okor redirected elsewhere withSplit.Advice.defun_around_funcallnow raises a more informative error message when the advice function's arity does not match the advised function's.
- Removed deprecated module type
Buffers and Text
- Add
Buffer.is_modified, a wrapper forbuffer-modified-p. Current_buffer.active_regionnow checksuse-region-pinstead ofmark-active.- Add optional arguments
max_durationandmax_costsforCurrent_buffer.replace_buffer_contents. See the docstring forreplace-buffer-contents. - Add
Kill_ring.current_kill_exn, which returns the first item in the kill ring (the one that would be inserted byyank). It can also return text copied from another GUI application, if available. This is a wrapper forcurrent-kill. - Add
Overlay.delete_property. This sets an overlay property to nil, as Emacs doesn't expose a way to actually remove the property from an overlay's plist; for most text properties, a nil value has the same effect as a missing one. - Add
Point.Property_searchmodule, which wrapstext-property-search-forwardand its required argument types. - Add wrappers for text property names:
Text.Property_name.{after_string,before_string,invisible}, equivalent toafter-string,before-string, andinvisible. - Add
Rx.Char_class.Named, which allows specifying a character class by name (e.g., "alphabetic", "digit"), rather than by listing them in a string or specifying a range.
- Add
Commands
- Add type
Symbol.Disabled.t, which allows disabled commands to include a message, such as to explain why a command was disabled. This message is displayed when the user attempts to run the disabled command.defun_* ?disabledarguments use the new type. - Add
Key_sequence.invoking_this_command, a wrapper forthis-command-keys.
- Add type
Faces
- Add
Color.of_rgb8, which takes arguments in the range[0, 255](instead of[0, 65_535]asColor.of_rgbdoes). - Add
Face.Attribute.Extendvariant, to handle the built-in faces in Emacs 28.
- Add
Frames and Windows
Frame.window_listnow accepts an optional?frameargument. WhenNone, this still lists the windows of the selected frame.- Make
Selected_window.find_file_other_windowAsync, asfind_filealready was.
Major modes
- Add
Compilation.major_mode, a wrapper forcompilation-mode. - Add
Compilation.find_buffer, a wrapper forcompilation-find-buffer. - Add
Major_mode.Python, a wrapper forpython-mode.
- Add
Minor modes
- Add
Minor_mode.auto_fill, a wrapper forauto-fil-mode Minor_mode.define_minor_mode'sinitializefunction now receives the minor mode being defined as an argument; this can be used to change the behavior based on whether the minor mode is being enabled or disabled, or to add hooks/commands that may enable/disable the minor mode.
- Add
Other
Buffer.with_temp_bufferandEcho_area.wrap_messagenow accept aSync_or_async.targument, instead of requiring the body to returnDeferred.t.- Add
Customization.Type.Key_sequencevariant. - Add
Minibuffer.read_file_name, a wrapper forread-file-name
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>