Version 0.6.0 of package Crux has just been released in NonGNU ELPA.
You can now find it in M-x list-packages RET.

Crux describes itself as:

  ==============================================
  A Collection of Ridiculously Useful eXtensions
  ==============================================

More at https://elpa.nongnu.org/nongnu/crux.html

## Summary:

  [![License GPL 3][badge-license]][copying]
  
[![CI](https://github.com/bbatsov/crux/actions/workflows/ci.yml/badge.svg)](https://github.com/bbatsov/crux/actions/workflows/ci.yml)
  [![MELPA][melpa-badge]][melpa-package]
  [![MELPA Stable][melpa-stable-badge]][melpa-stable-package]

  # crux

  A **C**ollection of **R**idiculously **U**seful e**X**tensions for Emacs.
  crux bundles many useful interactive commands to enhance your
  overall Emacs experience.

  Most of the crux commands are related to the editing experience, but
  there are also a bunch of utility commands that are just very useful
  to have (e.g. `crux-open-with` and `crux-reopen-as-root`).

  ## Origins of crux

## Recent NEWS:

# Changelog

## master (unreleased)

## 0.6.0 (2026-10-01)

### New features

* [#101](https://github.com/bbatsov/crux/pull/101): Add 
`crux-find-current-directory-dir-locals-file`.
* [#104](https://github.com/bbatsov/crux/pull/104): Add 
`crux-keyboard-quit-dwim`.

### Changes

* [#110](https://github.com/bbatsov/crux/pull/110): Require Emacs 28.1.
* The `crux-with-region-or-*` macros use `advice-add` instead of `defadvice`, 
which was removed in Emacs 31.
* [#110](https://github.com/bbatsov/crux/pull/110): Don't load TRAMP when crux 
is loaded.
* [#110](https://github.com/bbatsov/crux/pull/110): Mark `crux-recompile-init` 
as obsolete.
* [#110](https://github.com/bbatsov/crux/pull/110): The `crux-with-region-or-*` 
macros and the line duplication commands check `use-region-p`, so an empty 
region, or any region with Transient Mark mode off, no longer counts as active.
* [#110](https://github.com/bbatsov/crux/pull/110): 
`crux-cleanup-buffer-or-region` also skips modes derived from the ones in 
`crux-indent-sensitive-modes` and `crux-untabify-sensitive-modes`, and the 
former now includes `python-ts-mode` and `yaml-ts-mode`.
* [#110](https://github.com/bbatsov/crux/pull/110): `crux-transpose-windows` 
keeps each window's point and scroll position.
* [#110](https://github.com/bbatsov/crux/pull/110): Mark 
`crux-term-buffer-name` and `crux-shell-buffer-name` as safe directory-local 
variables.
* [#111](https://github.com/bbatsov/crux/pull/111): Use 
`tramp-file-name-with-sudo` for remote files in `crux-sudo-edit` and 
`crux-reopen-as-root-mode` when it's available (Emacs 30.1+), and honor a 
customized `tramp-file-name-with-method` for local files.
* [#111](https://github.com/bbatsov/crux/pull/111): Make 
`crux-reopen-as-root-mode` leave Emacs's own files and packages on `load-path` 
alone.

### Bugs fixed

* [#102](https://github.com/bbatsov/crux/pull/102): Create nonexistent parent 
directories in `crux-copy-file-preserve-attributes`.
* [#110](https://github.com/bbatsov/crux/pull/110): Fix byte-compilation on 
Emacs 31.
* [#110](https://github.com/bbatsov/crux/pull/110): Fix 
`crux-cleanup-buffer-or-region` erroring or cleaning the wrong text unless 
`untabify` and `indent-region` had been advised with 
`crux-with-region-or-buffer`.
* [#110](https://github.com/bbatsov/crux/pull/110): Fix 
`crux-rename-file-and-buffer` renaming remote version-controlled files to their 
old name, renaming after the user declined to save, and ignoring buffers 
without a file.
* [#110](https://github.com/bbatsov/crux/pull/110): Fix `crux-sudo-edit` and 
`crux-reopen-as-root-mode` logging in as root over SSH for remote files, and 
expanding `~` to root's home directory.
* [#110](https://github.com/bbatsov/crux/pull/110): Fix 
`crux-duplicate-current-line-or-region` duplicating an extra line when the 
region ends at the start of a line.
* [#110](https://github.com/bbatsov/crux/pull/110): Fix 
`crux-duplicate-and-comment-current-line-or-region` uncommenting already 
commented text and misplacing point.
* [#110](https://github.com/bbatsov/crux/pull/110): Fix `crux-eval-and-replace` 
ignoring `lexical-binding`.
* [#110](https://github.com/bbatsov/crux/pull/110): Fix 
`crux-recentf-find-file` and `crux-recentf-find-directory` failing when 
`recentf` wasn't loaded yet.
* [#110](https://github.com/bbatsov/crux/pull/110): Fix `crux-indent-defun` 
leaving the region active.
* [#110](https://github.com/bbatsov/crux/pull/110): Fix `crux-open-with` 
failing on commands with arguments.
* [#110](https://github.com/bbatsov/crux/pull/110): Fix the case region 
commands erroring when the mark was never set.
* [#110](https://github.com/bbatsov/crux/pull/110): Fix 
`crux-find-user-init-file` and `crux-find-shell-init-file` crashing when 
there's no init file.
* [#111](https://github.com/bbatsov/crux/pull/111): Fix `crux-view-url` 
erroring on failed fetches and cutting off content for URLs without HTTP 
headers.

## 0.5.0 (2024-02-29)

### New features

* [#94](https://github.com/bbatsov/crux/pull/94): Add 
`crux-with-region-or-sexp-or-line`.
...
...

Reply via email to