Skip to content

Releases: shackra/backpack

Backpack v0.5.3

Choose a tag to compare

@shackra shackra released this 10 May 21:20

Features

  • ui: Add diff-hl gear — VCS change indicators in the fringe
    • Real-time updates via diff-hl-flydiff-mode
    • Dired integration and terminal margin fallback
    • amend flag for diffing against parent of HEAD
    • Transient menu on C-x p R: hunk navigation, reference revision control, amend toggle
    • Transient installs independently of the magit gear
  • inventory: Parse keymap-set and define-key calls in gear files
    • Bindings in :config bodies and bare (when ...) blocks now appear in gear detail view

Bug Fixes

  • Remove duplicate lexical-binding: t cookie
  • Smarter buffer switching after killing current buffer
  • direnv: Define advice at :init block of leaf
  • Don't activate envrc when Backpack is cloned in user-emacs-directory
  • Remove unconditional de-activation of tool-bar, menu-bar and splash screen
  • Ensure ob-typescript is installed correctly by elpaca

Docs

  • Update README.md

v0.5

Choose a tag to compare

@shackra shackra released this 10 May 06:34

What's Changed

  • Codebase restructured: lisp/backpack.el split into separate files for better maintainability
  • Anvil.el integration: New support for anvil.el with AI gear and backpack-user-after-init-hook
  • More programming languages: Added gears for Clojure, HTML, and other tree-sitter grammars
  • Consult gear: New gear for consult integration

  • Pin grammar revisions by libtree-sitter ABI instead of Emacs version
  • backpack-treesit-recipe! now inherits grammar recipes correctly
  • Fixed tree-sitter-go pinned to revision matching Emacs 30.2
  • Use :until-abi for new language gears
  • Do not install markdown-ts-mode in Emacs 31+ (built-in)

  • Corfu: terminal support, two new behavioral flags, auto-idle improvements
  • Eldoc-box: works in daemon mode, fallback for terminal, dismiss with C-u C-h .
  • Eglot hover behavior restored with flag to disable

  • Initial YAML LSP protocol extensions for eglot
  • Workspace configuration for YAML LSP
  • TAB cycles indentation in yaml-ts-mode

  • Fix mu4e gear
  • Fix inventory :when gates skipping -prefixed guard checks
  • Catch packages that fail to install and report why
  • Catch throw when backpack ensure hangs
  • Fix frame persistence when 2 frames remain
  • drive-conf ignores envrc-related files
  • Close window when eshell/eat/vterm exits
  • Toggle shell buffers correctly

  • Improved org-mode support and appearance (#17)
  • Improved dired support
  • Magit project status eagerly added to project-switch-commands
  • Added manual test preparation script
  • Removed persistence.el (frame state persistence feature dropped)

Full Changelog: v0.4.3...v0.5

Backpack Emacs v0.4.0

Choose a tag to compare

@shackra shackra released this 02 Apr 07:52

This release introduces the self-documenting inventory browser, a major new feature that makes Backpack fully self-documenting. It also adds support for 8 new programming languages and file formats, a refreshed README, and numerous quality-of-life improvements.

Highlights

Self-Documenting Inventory Browser (M-x backpack-inventory)

Backpack is now self-documenting. Press C-h B or run M-x backpack-inventory to browse all available pouches, gears and flags interactively. The inventory:

  • Discovers pouches and gears automatically from the filesystem
  • Parses gear source files on demand using Emacs's read function -- no annotations or metadata files required
  • Shows three navigable levels: pouch listing -> gear listing -> gear detail
  • Displays enabled/disabled/default-on status, flags, external tool requirements (with required/optional/conflicts levels), required fonts, example gear! snippets, and pinned package versions
  • Features a Doom Emacs-inspired UI with a header bar, nerd-icons support (with graceful fallback), cursor-face highlighting, and tooltips
  • Opens in a right side window by default (configurable via backpack-inventory-display-action)

New Language & File Format Support

  • Haskell (:editing haskell) -- with LSP, tree-sitter, and org-babel integration
  • Rust (:editing rust) -- with LSP, tree-sitter, cargo integration, and org-babel support
  • TOML (:editing toml) -- with tree-sitter support
  • YAML (:editing yaml) -- with tree-sitter support
  • Terraform (:editing terraform) -- with LSP and tree-sitter support
  • Markdown (:editing markdown) -- major mode for Markdown files
  • reStructuredText (:editing rst) -- major mode for rST files
  • LaTeX (:editing latex) -- AUCTeX with tree-sitter support

New Default Features

  • which-key is now enabled by default in :config default -- displays available keybindings in a popup as you type. Uses the built-in version on Emacs 30+, installs the package on Emacs 29.x. Disable with -which-key.
  • *Help* buffers now open in a right side window (40% width) instead of splitting the current window.

New Gears & Tools

  • :tools cool-motions -- smart motions: C-a cycles between first non-whitespace character and beginning of line
  • :editing emacs-lisp -- Emacs Lisp support with lispy and let-completion
    Improvements
  • :doctor keyword extended -- now supports requirement levels: required, optional (default), and (conflicts "other-binary"). The inventory groups tools by level when a gear uses mixed levels.
  • Package display -- gear detail view now shows all pinned packages with short refs and GitHub repo info where applicable.
  • Tree-sitter fixes -- correctly set hooks and remap major modes to tree-sitter modes across all language gears.
  • WSL clipboard fix -- killed/copied text now correctly reaches the Windows clipboard under WSL.
  • saveplace enabled -- remembers cursor position in previously visited files.
  • savehist location -- history file moved to the nonessential cache directory.
  • Elpaca ref updates -- elpaca now properly updates repositories when the pinned ref changes in a leaf block.
  • Lexical binding -- enabled on all files that were missing it.
  • Magit and friends updated -- bumped to latest pinned refs.

Documentation

  • AGENTS.md -- comprehensive documentation for AI coding agents, covering architecture, boot sequence, gear file conventions, the gear!/gearp! macro system, naming conventions, the inventory system, testing, and all project rules.
  • README converted to Markdown -- README.org replaced with README.md. The manual feature listing is replaced by a reference to backpack-inventory, since the starter kit is now self-documenting.

Bug Fixes

  • Fix mu4e header lengths
  • Fix hard-coded paths replaced with variables
  • Fix add-to-list calls passing wrong type
  • Fix yaml-mode activation for .yml files

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@shackra shackra released this 02 Feb 02:53
a939d95

What's Changed

  • new: [vibe code] Improve usage of elpaca, add new command and more by @shackra in #8

Full Changelog: v0.2.1...v0.3.0

v0.2.1: Fast initialization times

Choose a tag to compare

@shackra shackra released this 13 Oct 21:29
v0.2.1
92b452c

What's Changed

  • chg: Reduce startup time of GNU Emacs by @shackra in #6

Full Changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@shackra shackra released this 10 Oct 18:31
v0.2.0

What's Changed

  • chg: Rename pouch :programming to :editing by @shackra in #3
  • new: Completion with Vertico, turned on by default by @shackra in #4

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@shackra shackra released this 08 Oct 07:47
v0.1.0
a5b099f

What's Changed

New Contributors

Full Changelog: https://github.com/shackra/backpack/commits/v0.1.0