#+TITLE: Change log of lin.el
#+AUTHOR: Protesilaos Stavrou
#+EMAIL: info@protesilaos.com
#+OPTIONS: ':nil toc:nil num:nil author:nil email:nil

The newest release is at the top.  For further details, please consult
the manual: <https://protesilaos.com/emacs/lin>.

* Version 1.1.0 on 2024-08-05

The package is in a stable state. These are some quality-of-life
refinements.

- Updated the colour values of all the faces defined by ~lin~. They
  now are a bit more vivid. The colours come from my ~modus-themes~.

- Defined the user option ~lin-remap-current-line-number~, which is
  set to a non-nil value by default. What it does is to apply the
  colour of the currently highlighted line (per ~hl-line-mode~) to the
  line number when ~display-line-numbers-mode~ is enabled.

- Used the correct symbol for the Mu4e headers hook
  (~mu4e-headers-mode-hook~ instead of ~mu4e-headers-mode~). Thanks to
  Simon Pugnet for the contribution. The change is small, meaning that
  Simon does not need to assign copyright to the Free Software
  Foundation.

- Added the ~archive-mode-hook~ and ~tar-mode-hook~ to the
  ~lin-mode-hooks~. Thanks to Nicolas De Jaeghere for the
  contribution. It too does not require copyright assignment.

* Version 1.0.0 on 2022-09-08

+ Clarified the doc string of the user option ~lin-mode-hooks~.  This
  variable specifies the list of hooks that ~lin-global-mode~ will use
  to apply its effect.  Lin enables ~hl-line-mode~ in the given buffer
  and remaps its face to the value of the ~lin-face~ user option.

+ Added ~pdf-outline-buffer-mode-hook~ (from the =pdf-tools= package) to
  the user option ~lin-mode-hooks~.  Thanks to Gautier Ponsinet for the
  patch which was sent to my personal email.  The change is below the
  ~15 line threshold and thus requires no copyright assignment to the
  Free Software Foundation.

+ Named the mailing list address as the =Maintainer:= of Lin.  Together
  with the other package headers, they help the user find our primary
  sources and/or communication channels.  This change conforms with work
  being done upstream in package.el by Philip Kaludercic.  I was
  informed about it here:
  <https://lists.sr.ht/~protesilaos/general-issues/%3C875ykl84yi.fsf%40posteo.net%3E>.

+ Made all user-facing variables specify the package version that
  introduced them or last affected their specification.  This
  information is presented in Help buffers.

+ Configured the Lin group in Custom UI buffers to show a link to the
  package's Info manual.  Again, this helps the user find information
  about Lin.

+ Removed old forms that rendered obsolete certain functions or
  variables.  This keeps the code base small and focused on the current
  feature set.

The switch to version =1.0.0= is mostly symbolic.  Lin has been stable
and feature-complete practically since its inception.  This change shows
that most (all?) of the work has been accomplished.

* Version 0.4.0 on 2022-06-09

+ The official Git repository is now hosted on SourceHut.  Mirrors are
  available on GitHub and GitLab---users can open issues there if they
  find it difficult to use the mailing list.  The sources:

  - Official manual: <https://protesilaos.com/emacs/lin>
  - Change log: <https://protesilaos.com/emacs/lin-changelog>
  - Git repo on SourceHut: <https://git.sr.ht/~protesilaos/lin>
    + Mirrors:
      - GitHub: <https://github.com/protesilaos/lin>
      - GitLab: <https://gitlab.com/protesilaos/lin>
  - Mailing list: <https://lists.sr.ht/~protesilaos/lin>

+ The ~grep-mode-hook~ and ~proced-mode-hook~ are included in the
  default value of the user option ~lin-mode-hooks~.  This practically
  means that Lin will be active in the implied modes when
  ~lin-global-mode~ is enabled.  Thanks to Nicolas De Jaeghere for the
  patch (Nicolas has assigned copyright to the Free Software
  Foundation).

+ The faces that leverage the macOS palette (~lin-mac{,-override-fg}~)
  are made to work with Mitsuharu Yamamoto's =emacs-mac= port:
  <https://bitbucket.org/mituharu/emacs-mac/src/master/>.  They read the
  =mac= display specification in addition to the =ns= one.  Remember
  that you can specify the desired face as the value of ~lin-face~ (its
  doc string documents all the stylistic options we provide).  Thanks to
  Kai von Fintel for the patch (the change is well below the ~15 line
  threshold for copyright assignment).

* Version 0.3.0 on 2022-04-08

+ Changed the source repository from GitLab to SourceHut:
  <https://git.sr.ht/~protesilaos/lin>.  Use the mailing list to start a
  discussion, report a bug, send a patch, etc.:
  <https://lists.sr.ht/~protesilaos/lin>.  The GitLab URL will serve as
  a mirror from now on (a GitHub mirror is still available and will
  remain that way).

+ Introduced a buffer-local minor mode as well as its global equivalent:
  ~lin-mode~ and ~lin-global-mode~.  This makes it easier to set up Lin
  in user init files and/or toggle it on demand.  The following shows
  how the package can be used:

  #+begin_src emacs-lisp
(require 'lin)

(setq lin-face 'lin-blue) ; check doc string for alternative styles

;; You can use this to live update the face:
;;
;; (customize-set-variable 'lin-face 'lin-green)

(setq lin-mode-hooks
      '(bongo-mode-hook
        dired-mode-hook
        elfeed-search-mode-hook
        git-rebase-mode-hook
        ibuffer-mode-hook
        ilist-mode-hook
        ledger-report-mode-hook
        log-view-mode-hook
        magit-log-mode-hook
        mu4e-headers-mode
        notmuch-search-mode-hook
        notmuch-tree-mode-hook
        occur-mode-hook
        org-agenda-mode-hook
        tabulated-list-mode-hook))

(lin-global-mode 1)
  #+end_src

+ The ~lin-face~ now has a custom setter which automatically updates its
  appearance in all buffers where ~lin-mode~ is enabled.  Users might
  thus prefer to set its value with ~customize-set-variable~ in order to
  find the style they like the most.  Otherwise setting the value with
  ~setq~ is just fine for stable configurations.  If, in that case, the
  user wants to update the face, they must invoke ~revert-buffer~ or
  equivalent (e.g. type =g= in Dired with the default key bindings) or
  evaluate the function ~lin-enable-mode-in-buffers~.

+ The user option ~lin-mode-hooks~ now includes ~bongo-mode-hook~ (from
  the =bongo= package).  Its default value is shown in the sample code
  above.

* Version 0.2.0 on 2022-03-16

Rewrote the entirety of =lin.el= to make the configuration easier and
keep the code streamlined.  The gist is that now Lin automatically
enables ~hl-line-mode~ in every mode implied by ~lin-mode-hooks~.  Here
is how Lin should be set up henceforth:

#+begin_src emacs-lisp
(require 'lin)

(setq lin-face 'lin-blue) ; check doc string for alternative styles

(lin-setup) ; Either run this or change `lin-mode-hooks'

(customize-set-variable
 'lin-mode-hooks ; do not use `setq' with this; `customize-set-variable' runs `lin-setup' automatically
 '(dired-mode-hook
   elfeed-search-mode-hook
   git-rebase-mode-hook
   ibuffer-mode-hook
   ilist-mode-hook
   ledger-report-mode-hook
   log-view-mode-hook
   magit-log-mode-hook
   mu4e-headers-mode
   notmuch-search-mode-hook
   notmuch-tree-mode-hook
   occur-mode-hook
   org-agenda-mode-hook
   tabulated-list-mode-hook))
#+end_src

The manual has been updated to reflect those changes:
<https://protesilaos.com/emacs/lin>.

Thanks to:

+ Christian Tietze for showing how the Lin face can use colors from the
  macOS palette.  The original contribution was in merge request 2:
  <https://gitlab.com/protesilaos/lin/-/merge_requests/2>.  Now we
  provide the ~lin-mac~ and ~lin-mac-override-fg~ faces.  These can be
  assigned as a value to the user option ~lin-face~.

+ Damien Cassou for suggesting that Lin sets itself up for a list of
  mode hooks.  The original contribution was in merge request 3:
  <https://gitlab.com/protesilaos/lin/-/merge_requests/3>.  It has now
  been rewritten as the ~lin-mode-hooks~ user option, though the idea is
  the same.

+ Federico Stilman for adding ~mu4e-headers-mode~ to the list that
  Damien had provided and which now lives as ~lin-mode-hooks~.
  Federico's contribution was sent as a patch via email.

* Version 0.1.0 on 2022-03-14

Initial release of the package.  Please read the manual.
