0.13.1 (2024-10-13)
- pop-to-logs: set read-only, use view-buffer-other-window (dc293e3)
- concentration,implanting: rework focusing (2bff462)
- logging: call set-buffer-modified-p after insert (bf09a58)
- logging: disable echoing logs by default, log by default (bc93408)
- logging: include "log" in buffer name (c46ecc8)
0.13.0 (2024-09-07)
- remember: remember multiple buffers (29c001b)
- consult: allow customizing narrow key (5f58ffd)
- logging: don't log to message buffer (cd34819)
- logging: log to buffer, command to pop to it (1a90f7b)
- menu: use pop-to-buffer to display, make configurable (3e87f04)
0.12.0 (2024-08-07)
- flush: don't probe memory unless moments were suppressed (b9aecee)
- flush: parameter to not flush visible moments (8ace07c)
- flush: return count of flushed moments (95a3e1b)
- hygiene: allow customizing function used to message (555b3bb)
- hygiene: call flush with ignore-visible (5ad6240)
- hygiene: don't select window while minibuffer is active (614e9ed)
- hygiene: remove nagging function in favor of message (fbd85a9)
- hygiene: use partial-recall-log for nagging (c69b798)
- logging: only log visibility while handling (fd0a464)
- logging: state reason for reinserting moments (8765220)
0.11.0 (2024-06-29)
- forgetting: allow banishing buffers (fdec137)
- menu,core: spin out buffers into a new memory (3ab6903)
- reactions: support tab-bar-undo-close-tab (813e9d9)
- rework how the subconscious works (af5361c)
- schedule: allow passing buffer name (c408dab)
- traits: consider view-mode being called after switching to buffer (f8cecaa)
- explain-omission: reference manual inclusion (e4868be)
- lighter: indicate if memory near capacity with contrast (122a8cc)
0.10.1 (2024-02-18)
- cask: add new package (5bd4498)
- concentration: rebuild previous change check (1294475)
- plasticity: add autoload cookie for mode (b46f92e)
0.10.0 (2024-02-08)
- history: add event structure, history methods (21526a4)
- history: add partial-recall-retrieve (75dab0f)
- structures: add history slots (ad5d714)
- subconscious: increased subconscious (e761851)
- completion: signal user-error when completing null (65cb082)
0.9.3 (2024-01-28)
- concentration: defer when there is no reality (01bae54)
- Convenience function
partial-recall-current-moment
. - Lighter now shows focus using
partial-recall-graph
if fleeting. - Concentration is now deferred until a meaningful buffer can be its target.
- Lighter indicates foreign moments.
- The menu now also indicates intermediate moments using a contrasting face.
- The menu now shows whether a buffer is modified.
- Moments are now auto-implanted if their focus is equal or greater than the required focus.
- Concentration breaks on foreign moments.
- Display of additional moment and memory info can now be toggled by
customizing
partial-recall-lighter-show-info
. - The documentation of the core functions has been updated and extended.
partial-recall-menu
now highlights buffers that are at the brink of being forgotten.- The lighter now shows the memory size when it hasn't grown past its original size in the help echo.
- The lighter now shows the focus of a moment as a percentage
(provided
partial-recall-auto-implant
is set).
- Many private functions (and underlying structures) were renamed.
- Variable
partial-recall-lighter
is no longer customizable. See above.
- Command
partial-recall-switch-to-buffer-other-window
, bound to4
in the command map. - Switching tabs now restarts concentration.
- The lighter now shows the memory level using a box.
- Logging variables have been merged into
partial-recall-log
that can be eithernil
,1
, or0
. - Auto-implanting variables have been merged into
partial-recall-auto-implant
, that is eithernil
or the focus value. - Thresholds were reduced to single
partial-recall-intermediate-term
. It can be set to an integer or nil to disable its use. Moment that fall below or exceed this threshold are handled differently (switched to or reclaimed). - Hooks
partial-recall-{probe,permanence-change,after-insert}-hook
now userun-hook-with-args
and pass sensible arguments to their functions (the memory, the moment and permanence and the moment respectively).
- Jumping to a register with a window configuration is now handled for auto-switching.
- Changing window configurations with
winner
may switch memories. - Command
partial-recall-reject
to push moments from the current memory to another. partial-recall-intensities
governing by how much a moment's focus increases. Swapping now also has an effect on focus. The user may also givesuppress
an intensity.
- Buffer source
partial-recall-x-consult-buffer-source
now sets:hidden t
to avoid duplicate results duringconsult-buffer
. It usesu
for narrowing now. - Command
partial-recall-switch-to-buffer
no longer automatically "neglects" the buffer; it only does so when called with a prefix argument. - Value of
partial-recall-auto-implant-threshold
was doubled to account for actions giving more focus.
- All completion for buffers now uses
read-buffer
and sets completion table (meaning sorting works and you don't need to set upmarginalia
for this package).
partial-recall-menu
no longer usesread-symbol-shorthands
.partial-recall-extensions
was renamed topartial-recall-x
. All provided functions and variables also use thepartial-recall-x-
prefix.
- Buffers not having a name no longer breaks
partial-recall-menu
. partial-recall--forget
now checkspartial-recall--mapped-buffer-p
instead ofpartial-recall--meaningful-buffer-p
as the latter may fluctuate and it was possible to add meaningless buffers without the ability to remove them.
- The menu now works across frames.
- Clean-up now works across frames.
- Visibility check now works across frames.
- Claiming from other frames now quits the window on the other frame.
- The menu how always uses
display-buffer-use-some-window
. - The thresholds for
partial-recall-max-age
(30=>20) andpartial-recall-reclaim-min-age
(15=>10) were reduced.
- Explainer for trait
buffer-file-name
now mentions the actual issue. - Calling
pop-to-buffer
with NORECORD flag is now honored. - Memories are only created for non-nil keys.
- Hash table tests are now done using
equal
to avoid duplicate subconsciousnesses.
- Custom variable
partial-recall-memorable-traits
that holds a list of functions to call duringpartial-recall--flush
to save moment from being flushed. - Function
partial-recall--gracedp
used as the default only such trait above. The function has the previous implementation as well as a check if the moment is belowpartial-recall-reclaim-min-age
. - New command
partial-recall-forget-some
that works likekill-some-buffers
but instead prompts to forget moments. - Functions in
partial-recall-meaningful-traits
can now have propertypartial-recall-non-meaningful-explainer
: a string explaining why the trait was infringed. This is used for new commandpartial-recall-explain-omission
and in the mode-line lighter.
- Custom variable
partial-recall-traits
was renamed topartial-recall-meaningful-traits
. - Filtering based on
partial-recall-filter
is now a trait ofpartial-recall-meaningful-traits
. - Lighter now uses "!" to indicate buffer that is not meanignful and "?" to indicate a meaningful but not yet remembered buffer.
- Concentration only breaks once.
- Variable
partial-recall-auto-switch
can now be set to symbolprompt
to prompt the user whether a switch should happen. - The face used to highlight the
partial-recall-log-prefix
can now be customized. - The lighter now shows additional information and provides quick
access to implanting moments and the entire command map. It is
constructed from new custom variable
partial-recall-lighter
that itself comprises several mode line constructs. Variablepartial-recall-mode-lighter
is replaced bypartial-recall-lighter-prefix
. - Key
s
inpartial-recall-menu
buffers is now bound to toggling the inclusion of the subconscious.
- Slot
update-count
has been renamed tofocus
(as well as various private functions). - Concentration now instead increases the moment's focus.
partial-recall-auto-implant-threshold
has been increased to account for the change in how concentration works.- The
focus
no longer is increased if the moment is already implanted. - Trait
partial-recall--not-in-view-mode-p
to not consider buffers that were opened inview-mode
meaningful.
partial-recall-min-focus
has been removed (now folded intopartial-recall-auto-implant-threshold
.
partial-recall--suppress
no longer inserts moments that point to an already suppressed buffer.- If a killed buffer was the target of the last focus, the focus is cleared.
- Enabling
partial-recall
now starts a timer that will check the current moment every minute. If the same moment is encountered enough times, it is made permanent. The required repeats are governed by variablepartial-recall-min-focus
. git-rebase-todo
files are ignored by default.- Menu uses new indicator for moments that are implanted but were never updated.
- Commands
partial-recall-next
andpartial-recall-previous
to quickly switch buffers bound ton
andp
. - New keymap to easily repeat new navigation commands.
- In
partial-recall-menu
keyu
is now bound to new commandpartial-recall-menu-unmark.
- By default the reclaim minimum age is now below the maximum age.
- !!
partial-recall-buffer-limit
was renamed topartial-recall-memory-size
.
- Several performance improvements.
- A menu opened with
include-subsconscious
now also honors this when reverting the buffer.
- New command
partial-recall-meld
to combine two memories into one and optionally closing the source memory. Bound tou
in the command map. - New custom variable
partial-recall-traits
. This is a list of functions used to determine whether a buffer is meaningful, i.e. whether it should be scheduled. By default it only includesbuffer-file-name
. The introduction of this variable means that functionality is no longer tied to file buffers if so desired. - Command
partial-recall-buffer-specs
that gives information as to a buffer's characteristics. - Command
partial-recall-memory-specs
that does the same thing for memories. - Hooks
partial-recall-permanence-change-hook
,partial-recall-probe-hook
andpartial-recall-after-insert-hook
. - Command
partial-recall-flush
to remove all moments that are neither permanent nor were ever updated (excluding the currently visited buffer).
- Implanting moments no longer increases their update count. In fact, excising will reset it.
- Forgetting buffers now probes the memory.
- Insertion is now done using
partial-recall--insert
.
- Probing memories now only extends if there was no resizing.
- Functions
partial-recall--reality-buffer-p
andpartial-recall--reality-owns-buffer-p
in favor of usingpartial-recall--memory-buffer-p
.
- Custom variable
partial-recall-auto-switch
. When switching to a buffer that is mapped in another memory and wouldn't be reclaimed, a switch to its memory's tab is performed.
partial-reall-{menu,lift}
are now bound tom
andl
.
partial-recall-remember
no longer provides the current buffer as initial input unless it is meaningful or it was called with prefix argument.- Completions now provide initial input whenever it makes sense.
partial-recall-lift
now switches to the lifted buffer.- When API commands switch to a buffer, they are no longer scheduled.
- Lifting moments no longer increases their update count.
- Custom variable
partial-recall-log-prefix
to do just that. The default is "PR". partial-recall-filter
to filter out certain buffers/files. This currently only includes the fileCOMMIT_EDITMSG
.
partial-recall-reinforce
was removed from the public API as there's no scenario where this would be useful. In the command map,partial-recall-remember
now uses the letterr
.
partial-recall--{log,debug}
now usepartial-recall--repr
to print moments and memories and prependspartial-recall-log-prefix
.partial-recall-reclaim
now switches to the reclaimed buffer.
partial-recall-menu
now has a minimum length for tab and buffer columns.pop-to-buffer
is now also advised so thatfind-file
is covered when file already has a buffer. Thefind-file
hook was removed.partial-recall-switch-buffer
no longer prompts with the current buffer as initial input.
partial-recall--clean-up-buffer
now callsquit-window
instead ofdelete-window
which could mean deleting the only window.
partial-recall--repr
to print a readable representation of a memory or moment instance.- Custom variable
partial-recall-handle-delay
that determines the amount of seconds to wait until a buffer is handled. The default it 3 seconds.partial-recall--handle-buffer
will now check whether the scheduled buffer remains visible before handling it. This makes sure that only buffers are handled that weren't just switched to by accident. If the minibuffer was entered before handling, the check is made against the previously selected window's buffer. - Custom variable
partial-recall-record-triggers
. This a list of commands that will trigger recording the previously selected window. It contains a single command by default,consult-buffer
(because of its previewing). partial-recall-remember
as a user-facing command. It was added because the user can now end up with a buffer that's not in memory. It provides a list of unmapped file buffers providing the current buffer as initial buffer. The selected buffer is switched to. If called with a prefix argument, all buffers can be remembered.partial-recall--forget
will now delete any window displaying the buffer to forget.- Custom variables
partial-recall-log
andpartial-recall-log-level
. partial-recall--debug
to log debug messages.- The docstrings of actions have been expanded upon.
partial-recall-menu
now displays timestamps that are older than 12 hours by printing a date.partial-recall-menu
now displays the update count and whether it is implanted using block elements. The implanted state is indicated by face color. The actual values are displayed in the columns help echo.partial-recall-{max-age, reclaim-min-age}
have been increased to 10 and 30 minutes respectively.- The list of mapped file buffers can now include those stored in the subconscious by passing the appropriate argument.
- Implanted moments can no longer be reclaimed.
partial-recall-menu-execute
no longer deletes entries which led to buffers to be forgotten to be ignored.- Forgetting moments now suppresses them.
- All implanted moments that are on the verge of being forgotten are now reinforced when remembering a new moment.
partial-recall-toggle-logging
in favor of using custom variables.
- A separate memory called
partial-recall--subconscious
exists now as a sink of moments forgotten from other memories. If a moment is removed from the subconscious, its buffer is killed ifpartial-recall-repress
is t. When remembering, moments are "lifted" from the subconscious if they exist in it. - Lifting can also be performed using
partial-recall-lift
. - Subconscious moments can be included and interacted with in
partial-recall-menu
if it is called with a prefix argument. - Moments that have been updated past a certain limit are now
auto-implanted, if
partial-recall-auto-implant
ist
and their update count has exceededpartial-recall-auto-implant-threshold
.
partial-recall--reclaim
no longer recreates a moment, instead it is swapped from the previous memory to reality.partial-recall--consult-buffer-source
was moved to new subpackagepartial-recall-extensions
.- The column width is now adapted based on the longest buffer and tab name.
- Code was refactored again into more sensible headings.
- Completion for reality buffers now sets the current buffer as initial input if possible.
- New sub-package
partial-recall-menu
that acts similar tolist-buffers
. You can forget, reclaim, implant and excise (see below), and visit buffers from there. - Function
partial-recall--tab
to get the tab associated with a memory (see below). - Functions
--reinforce
and--reclaim
now log their actions if new variablepartial-recall--log
ist
. - Memories that have grown while remembering may shrink again after forgetting.
- Moments can now be implanted using
partial-recall-implant
. This will make sure they are updated instead when would otherwise be removed.
- The default buffer limit was halved (20 -> 10).
- All user-facing commands now use appropriate completion instead of applying only to the current buffer.
- Memories are now created with the key added to the tab for cross-reference (see above).
partial-recall--reinforce
now only reinforces when the visited buffer would be subject to removal. Instead of destroying the moment, it is simply re-inserted while growing the ring if needed. Afterwards timestamp and update count (see below) are increased.partial-recall--moment
structs now have fieldupdate-count
(for debug purposes).- User-facing
partial-recall-reinforce
will now force--reinforce
.
partial-recall--handle-buffer
now calls newpartial-recall--recollect
instead of--reclaim
. This will either call--reclaim
if the buffer is not part of the "reality" or new function--reinforce
that will recreate the moment. This makes sure that often-visited buffers aren't forgotten just because they were visited early on.
- Switched to using
dinghy
.
partial-recall-steal
to take another memory's buffer.- Mode key-map.
partial-recall--handle-buffer
now calls newpartial-recall--recollect
instead of--reclaim
. This will either call--reclaim
if the buffer is not part of the "reality" or new function--reinforce
that will recreate the moment. This makes sure that often-visited buffers aren't forgotten just because they were visited early on.
- The defaults for custom variables have been vastly increased.
- Switched to using
dinghy
.
partial-recall
will fix up the original tab of the current frame after a delay.
Initial release of the package that was spliced out of my own configuration.