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 with- Drop_if_okor redirected elsewhere with- Split.
- 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 checks- use-region-pinstead of- mark-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. When- None, 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's- initializefunction 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_bufferand- Echo_area.wrap_messagenow accept a- Sync_or_async.targument, instead of requiring the body to return- Deferred.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)"
  >