Septum version 1.0.0

Septum 1.0.0 is available in Alire.

I’ve saved innumerable hours using it to look through millions of lines of code the last five years. There’s always improvements you can make on a program, but the most recent batch of commands I wanted have been added, and in-program help is now generated from a limited subset of Markdown, so it’s time to call it “Done.”

What’s new in 1.0.0?

Line filter updates

A few times I’ve wanted to match a line on one of multiple terms, so I added find-any-* commands. This has been great when I don’t know or can’t remember which is the preferred term in a codebase, or if multiple terms are used interchangeably.

  • :white_check_mark: Added find-any-like, an OR’d version of find-like.
  • :white_check_mark: Added find-any-text, an OR’d version of find-text.
# Match lines containing "foo" or "bar"
find-any-text foo bar

Path filter updates

Partitioning what I look at helps direct searches, via a combination of line filters and path filters using match-files for feedback. To better support path filtering, path filters support drop
commands similar to line filters.

  • :white_check_mark: Added drop-path-filters, a path filter version of drop.
  • :white_check_mark: Added pop-path-filters, a path filter version of pop.
  • :counterclockwise_arrows_button: Changed find-path to find-any-path to be consistent with line filter conventions.
find-like foo bar
exclude-like baz
match-files

# Way too many files returned, so filter on some paths.
exclude-path obj/

# Filter .ali files
exclude-path .ali

exclude-path other_thing

# Remove the new path filters I added by index.
drop-path-filters 3 4 5

Program help

So many commands have related commands that the program help now returns the associated topic. This should help make it more clear how and why to use specific commands.

  • :counterclockwise_arrows_button: Changed help to show topics for each command. Help is generated by another executable.

Miscellaneous

  • :white_check_mark: Added requested --version and --help options.
  • :hammer_and_wrench: Fixed a bug where reorder would allow duplicated indices.
  • :cross_mark: Removed experimental --tool support.
  • More integration testing with BBT.

Where to?

The program’s been pretty stable, but I’ve primarily tested on Windows lately. I haven’t heard of anyone using Septum in the wild, so I’ve been focused on my workflows. If you want another platform, you’ll have to build it yourself. If you have used it, I would appreciate any feedback.

Happy searching!

3 Likes

For those needing some more context about septum, see an earlier post: Septum 0.2.0 released.