Skip to content

informatimago/emacs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

433 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PJB Emacs Library

Pascal J. Bourguignon's personal Emacs Lisp library — a long-running collection of pjb-*.el modules and a handful of standalone files. Some modules with no interactive forms have been ported to Common Lisp (e.g. pjb-list, pjb-strings, pjb-graph).

See CLAUDE.md for build/test instructions and MODERNIZATION.md for the ongoing cleanup roadmap.

Supported Emacs version

Emacs 27.1 or later. The library assumes cl-lib, seq, map, subr-x, project.el, and lexical-binding. The CL-flavoured helpers (pathnames, characters, time accessors, etc.) live under the cl- prefix — the same namespace cl-lib itself uses — provided there is no collision; otherwise they fall back to a pjb- prefix.

Status of interactive libraries

Maturity assessment of the user-facing libraries (those containing interactive forms). Pure utility / data-structure libraries (pjb-list, pjb-strings, pjb-graph, pjb-queue, pjb-class, pjb-object, pjb-pmatch, pjb-make-depends, pjb-state-coding, pjb-worldfact, pjb-bourse, astruct, inputrc, room, inspect, gpx, sound, slime-rpc, site-start, …) are not listed here — they are libraries, not commands.

Legend: stable = finished, used regularly · working = usable, rough edges · POC = sketch / experimental · obsolete = superseded.

File Status Notes
pjb-emacs.el stable large mature interactive helpers
pjb-utilities.el stable mature utilities
pjb-advices.el stable clean advices collection
pjb-loader.el stable mature loader
pjb-test-driver.el stable clean test runner
pjb-eval.el stable small focused eval-last-expression
pjb-describe.el stable small describe helper
pjb-emacs-patches.el working patches with TODOs
pjb-emacs-balance-windows.el stable minor TODO
pjb-milliways.el working small fun module
pjb-sources.el stable large sources tooling
pjb-constants.el stable data + interactive helpers
pjb-cl-faces.el stable mature CL faces
pjb-cl-magic.el stable mature CL auto-paren
pjb-asdf.el stable clean ASDF helpers
pjb-i2p-expression.el stable minor TODOs
pjb-s2p-expression.el stable scheme→prefix converter
pjb-cvspass.el stable small cvs pass helper
pjb-page.el stable page-by-page viewer
pjb-layers.el stable mature layers mode
pjb-transpose.el stable one TODO
pjb-secouer.el working small fun module
pjb-caps-mode.el stable small minor mode
pjb-oldies.el stable mature legacy combo
pjb-searches.el stable clean searches
pjb-find-tag-hook.el stable small hook
pjb-computer-paper.el working one TODO
edit.el stable tiny edit helper
split.el working usable, one TODO
pjb-blink.el stable small mature
pjb-server.el stable TCP server helper
pjb-frame-server-old.el obsolete superseded by emacsclient
pjb-shell.el stable small shell helpers
pjb-comint.el stable small comint filter
pjb-echo-keys.el stable clean small mode
emacs-window-focus-mouse.el stable tiny utility
emacs-uptime.el stable tiny utility
pjb-c.el working several TODOs
pjb-c-style.el stable C style definition
freerdp-c-style.el stable C style definition
pjb-thi.el stable header/impl toggle
pjb-objc-mode.el working some TODOs
pjb-objc-edit.el stable ObjC edit helpers
pjb-objc-gen.el working code generation
pjb-objc-ide.el working rough IDE bits
pjb-objc-parser.el working partial parser
pjb-java.el stable mature Java support
pjb-java-generate.el working DTO generator
android-classes.el stable data + lookups
pjb-ruby.el stable small Ruby helpers
pjb-pl1.el working PL/1 mode, one TODO
pjb-asm7090.el stable mature asm mode
autocad.el stable new mode with ERT tests
pjb-mail.el stable mature, some TODOs
pjb-pgp.el stable mature PGP integration
pjb-gnus.el stable small gnus helpers
pjb-vm.el working VM is upstream-obsolete
pjb-vm-kill-file.el working depends on obsolete VM
pjb-erc.el stable mature ERC config
pjb-erc-filter.el stable small filter
pjb-erc-speak.el stable ERC speak integration
pjb-html.el stable mature html helpers
pjb-http.el working small http helpers
pjb-xml.el working one TODO
pjb-browser.el working TODOs
pjb-google-translate.el working small wrapper
pjb-termbin.el stable small termbin client
pjb-org.el stable clean org helpers
pjb-org-uml.el POC ~24 lines, sketch
pjb-banks.el stable mature banks parsing
pjb-banks-old.el obsolete superseded by pjb-banks
pjb-selftrade.el working scraper
pjb-euro.el stable euro currency helpers
pjb-roman.el stable minor TODOs
pjb-date.el stable small date helpers
pjb-unicode.el stable mature unicode helpers
pjb-math.el stable small math helpers
pjb-tla.el stable TLA helpers
insulte.el stable insult generator
pjb-color.el stable mature color tools
pjb-ansi-color.el stable clean ANSI handling
pjb-font.el stable mature font helpers
pjb-image-minor-mode.el stable small minor mode
pjb-insert-image.el working comint patch
pjb-animate.el POC ~17 lines, sketch
pjb-speak.el stable small speech helper
polygon.el POC ~20 lines, sketch
pjb-cvs.el working analyser, no interactive
pjb-work.el stable personal work helpers
pjb-dodo.el working small fun module
pjb-dot.el stable dot file generator
pjb-zone.el stable small zone helper
psql.el working several TODOs
pjb-xcode.el stable theme loader
pjb-xresources.el stable Xresources helpers
dxo.el stable site config
trustonic.el stable site config
ubudu.el stable site config

Library classification

Core utilities

  • pjb-utilities.el — Various utility functions.
  • pjb-utilities-test.el — Unit tests for pjb-utilities.el.
  • pjb-advices.el — Patches various Emacs functions via defadvice.
  • pjb-emacs.el — Functions useful only in interactive Emacs sessions.
  • pjb-emacs-patches.el — Random patches to Emacs.
  • pjb-loader.el — Loads pjb Emacs sources.
  • pjb-make-depends.el — Generates dependencies for Lisp sources from (require) sexps.
  • pjb-test-driver.el — Test driver that loads and runs all pjb-* tests.
  • pjb-milliways.el — Schedules functions to run at the end of ~/.emacs.
  • pjb-describe.eldescribe helpers.
  • inspect.el — Object inspector.
  • room.el — Implements a room function for Emacs Lisp.
  • emacs-uptime.el — Reports Emacs process uptime (ttn).
  • site-start.elsite-start file needed for ~/.emacs.

Common Lisp support

  • pjb-cl.el — Exports a few Common Lisp operators missing from cl.
  • pjb-cl-faces.el — Defines font-lock faces for COMMON-LISP symbols.
  • pjb-cl-magic.el — Automagically inserts parentheses while typing Common Lisp code.
  • pjb-cl-magic-lambda-lists.el — Hash table of CL lambda lists for the cl-magic auto-paren engine.
  • pjb-clelp.el — Helpers for Common Lisp development.
  • pjb-asdf.el — ASDF utilities.
  • pjb-eval.eleval-last-expression working for Common Lisp, Emacs Lisp and Scheme.
  • slime-rpc.el — Emacs/Common Lisp RPC over SLIME/Swank.
  • pjb-pmatch.el — Sexp pattern matcher.
  • pjb-class.el — Helpers for classes.
  • pjb-object.el — Root class providing compatibility utilities.
  • pjb-cvspass.el — Unscrambles CVS passwords stored in ~/.cvspass.
  • scratch.el — Sketches/syntactic sugar for defclass.

Data structures

  • pjb-list.el — List utility functions.
  • pjb-queue.el — FIFO queue type with head/tail pointers.
  • pjb-graph.el — Graph class.
  • astruct.el — Structures-as-alists prefixed by the structure type name.
  • inputrc.el — Reader for readline ~/.inputrc files.

Strings, text, editing

  • pjb-strings.el — String utility functions.
  • pjb-transpose.el — Transposes or rotates the characters of a region.
  • pjb-secouer.el — Randomizes the internal letters of words in the selected region.
  • pjb-caps-mode.elcaps-mode for capitalization handling.
  • pjb-oldies.el — Combines paper-mode, caps-mode, upcase/downcase-lisp via file hooks.
  • pjb-page.el — Views a buffer page by page.
  • pjb-computer-paper.el — Computer-paper mode helper.
  • pjb-layers.el — Major mode for editing layered texts (pages separated by ^L) with merging.
  • pjb-find-tag-hook.elfind-tag hook.
  • pjb-searches.el — Web and grep searchers.
  • edit.el — Minimal edit-then-set-value buffer helper.
  • split.el — Window splitting utilities for Emacs ≥ 24.

Buffer / window / frame / shell

  • pjb-emacs-balance-windows.el — Set the same size for all windows.
  • pjb-blink.el — Alternate blinking parens.
  • pjb-server.el — Manage a TCP server process inside Emacs (using netcat to listen).
  • pjb-frame-server-old.el — Obsolete frame server (superseded by mfod / emacsclient).
  • emacs-window-focus-mouse.el — Selects the window under the mouse pointer.
  • pjb-shell.elshell/nshell defined as functions instead of advices.
  • pjb-comint.el — Adds output filters to handle more emacs-048 codes in comint.
  • pjb-echo-keys.el — Echoes Emacs key chords as they are typed.
  • pjb-echo-keys-test.el — Unit tests for pjb-echo-keys.el.

Language modes — C family

  • pjb-c.el — C indenting functions.
  • pjb-c-style.el — Defines PJB's own C style.
  • freerdp-c-style.el — C style used for the FreeRDP project.
  • pjb-thi.el — Toggle header/implementation buffers for C-like languages.

Language modes — Objective-C

  • pjb-objc-mode.el — Objective-C major mode.
  • pjb-objc-edit.el — Editing utilities for Objective-C++ with strange style rules.
  • pjb-objc-gen.el — Generates Objective-C code.
  • pjb-objc-ide.el — Objective-C refactoring tools.
  • pjb-objc-parser.el — Partial parsers for Objective-C code.
  • pjb-objc-parser-test.el — Tests for pjb-objc-parser.

Language modes — Java, Ruby, PL/I, ASM, AutoCAD

  • pjb-java.el — Commands to help editing Java code.
  • pjb-java-generate.el — Generates Java DTO classes from descriptions.
  • android-classes.el — Scrapes Android reference HTML to build package/class info.
  • pjb-ruby.el — Help for Ruby editing.
  • pjb-pl1.el — Major mode for editing PL/1 source.
  • pjb-asm7090.el — Support for IBM 7090 assembler.
  • autocad.el — Major modes for AutoCAD AutoLISP/Visual LISP, DCL, DWG.
  • autocad-test.el — ERT tests for autocad.el font-lock and indentation.

Mail / news / IRC

  • pjb-mail.el — Various functions related to mail handling.
  • pjb-pgp.el — Integrates PGP with Emacs.
  • pjb-gnus.el — Defines Gnus commands.
  • pjb-vm.el — VM mail reader stuff (obsolete).
  • pjb-vm-kill-file.el — Kill-file feature for VM.
  • pjb-erc.el — ERC stuff (anti-flood, lisppaste yank, etc.).
  • pjb-erc-filter.el — Filters IRC nicks.
  • pjb-erc-speak.el — ERC speak (text-to-speech) integration.

Web / HTML / HTTP / XML

  • pjb-html.el — HTML tag navigation (skip/up/down tag, etc.).
  • pjb-http.el — HTTP and related helpers.
  • pjb-xml.el — XML parsing patches/utilities.
  • pjb-browser.el — A column-based browser.
  • pjb-google-translate.el — Attempts to query Google Translate.
  • pjb-termbin.el — Save buffer or region to termbin.

Org-mode

  • pjb-org.elorg-mode utilities including splitting big blocks into included files.
  • pjb-org-uml.elorg-mode helpers for UML use-cases.

Finance / banking

  • pjb-banks.el — Formats bank movement listings fetched from the web.
  • pjb-banks-old.el — Older bank listing formatting code.
  • pjb-bourse.el — Stock-market helpers.
  • pjb-selftrade.el — Selftrade brokerage helpers.
  • pjb-euro.el — Euro currency utilities.

Internationalization, dates, numbers, math

  • pjb-roman.el — Roman numeral utilities.
  • pjb-date.el — Date formats.
  • pjb-unicode.el — Functions binding keys locally to Unicode alphabets.
  • pjb-math.el — Bindings for mathematical symbols.
  • pjb-constants.el — Constants of physics.
  • pjb-constants-test.el — Unit tests for pjb-constants.el.
  • pjb-i2p-expression.el — Converts infix expressions to prefix s-expressions and evaluates them.
  • pjb-s2p-expression.el — Converts s-expressions to other forms (companion to i2p).
  • pjb-worldfact.el — Functions to process the CIA World Factbook.
  • pjb-tla.el — Three-letter-acronym dictionary.
  • insulte.el — Captain Haddock's insults generator.

Multimedia: sound, color, image, graphics

  • pjb-color.el — Setting RGB colors with sliders.
  • pjb-ansi-color.el — Colorize buffers containing ANSI color escape sequences.
  • pjb-font.el — Font manipulation helpers.
  • pjb-image-minor-mode.el — Minor mode replacing image links by inline images.
  • pjb-insert-image.el — Patch to insert images in comint buffers (e.g. inferior-lisp).
  • pjb-animate.el — Animates buffer contents at a chosen speed.
  • pjb-speak.el — Calls an external speak script to say text.
  • sound.el — Plays a generated sine wave through play-sound.
  • polygon.el — Collects mouse-click points into a polygon.

Source-code management & work tracking

  • pjb-cvs.el — Application that analyses CVS revision graphs.
  • pjb-sources.el — Functions helpful when writing programs (see also pjb-state-coding.el).
  • pjb-state-coding.el — Generates a structure encoding hierarchical states into a bit field.
  • pjb-work.el — Inserts start/stop timestamps and updates total line counts.
  • pjb-dodo.el — Traces daily start/stop times and plots them.

External tools / integrations

  • pjb-dot.el — Generates Graphviz dot files from pjb-graph graphs.
  • gpx.el — GPX (GPS exchange) data structures via java-defstruct.
  • pjb-zone.el — Formats DNS zone files.
  • psql.el — Interactive wrapper around pg.el for PostgreSQL.
  • pjb-xcode.el — Loads an Xcode DVT theme plist and applies its colors to font-lock.
  • pjb-xresources.el — Produces ~/.Xresources from current Emacs settings.

Site-specific configurations

  • dxo.el — Emacs configuration used at DxO Labs / Optics Pro Mac team.
  • trustonic.el — Emacs configuration used at Trustonic Ltd.
  • ubudu.el — Emacs configuration used at Ubudu SAS.

About

Clone of https://gitorious.org/com-informatimago/emacs/ Pascal Bourguignon's personal emacs library. Description at http://www.informatimago.com/develop/emacs/

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors