Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: emacs-helm/helm
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.9.9
Choose a base ref
...
head repository: emacs-helm/helm
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
2 changes: 1 addition & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# These are supported funding model platforms
github: emacs-helm
custom: https://www.patreon.com/user?u=86324343
custom: https://www.patreon.com/user?u=86324343
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -79,6 +79,7 @@ compile: $(ELC)

# Compile all files at once
batch-compile:
@echo Compiling helm with $(EMACS_COMMAND)
$(EMACS) $(LOADPATH) -f batch-byte-compile $(EL)

# Remove all generated files
84 changes: 83 additions & 1 deletion NEWS.org
Original file line number Diff line number Diff line change
@@ -1,6 +1,88 @@
#+STARTUP:showall

* NEWS
** Version 4.0.2
*** Fix Emacs bug with CRM when using org-set-tags
*** Improve helm-source-files-in-current-dir
*** Fix some compatibility problems with EIEIO in various Emacs
*** Improve helm-projects-history
*** Fix bug in recentf
Properties may corrupt recentf data, prevent this.
*** Fix bug with *-window-side-state no more working
*** Remove the ability of switching to recursive search with C-j in HFF
It was broken and not needed as we can just add the final "/" to expand.
*** Change default value of `helm-locate-recursive-dirs-command'
It is no more using `locate` but `find`, this because locate is not
working anymore out of the box without some tweaks (plocate backend).
It is still anyway the faster alternative once tweaked, see HFF
documentation.
*** Improve position of helm frame
*** Provide icons in find and fdfind
** Version 4.0.1
*** Provide icons in some more places (helm-for-files.el)
*** Package-vc-* commands have now affixations (package category)
*** Show only basename of dot files in helm-find-files
It is now the default, but it can be configured with `helm-ff-show-dot-file-path`.
*** Allow using both all-the-icons and nerd-icons as icon providers
Use the variable `helm-x-icons-provider`.
*** Add affixations to helm-info
Add a description of info file when using `helm-info` or `info-display-manual`.
*** Provide minimal support for eww bookmarks
*** Stop preventing dups when trashing files
*** Add a helm-add-to-list function for user init file settings
*** Drop support for deprecated defadvice management
*** Allow destructuring in helm-acase
*** Popup-info can be provided in metadata and added to any completion
via the vars `helm-completing-read-command-categories` and
`helm-completing-read-extra-metadata`, for example it is now enabled
in M-x man.
*** Maybe provide a popup-info in completion-at-point
If CAPFns provide such information via `completion-extra-properties`,
display it in a popup-info when helm-popup-tip-mode is enabled.
`helm-lisp-completion-at-point` provides this as well.
*** Add completion for Char Classes for regexps
This is available in `helm-lisp-completion-at-point`.
*** Enhance usage of tab-bar-mode from Helm
Previously we were displaying each marked candidate in a tab, now all
marked candidates go in same tab.
Helm-find-files is now using the same functions as helm-buffers to
display its candidates in tab.
helm-imenu-all when jumping to a candidate jump to it in its tab if
possible.
*** Access to helm-find-files bookmarks from helm-read-file-name
That's mean that when copying/renaming etc... you can use bookmarks as
target.
*** Fix a bug in query replace in file names
It is now possible to match counter ("\#") inside the replacement
string and not only before or after as before.
*** Fix a bug with dummy sources in file related sources
It is now possible to mark wildcard candidates from unrelated
directories.
** Version 4.0
*** Enhance helm-finder
Now helm-finder fetchs keywords from all packages, not only built-in
and allows installing from there.
*** helm-popup-tip-mode is now usable in any source having the popup-info attribute
In addition of the various helm-grep-* now =helm-man-woman= and
=helm-find-files= can benefit of this mode.
*** New command helm-outline to navigate buffers according to outline-regexp
*** New helm grep ag action to search results from the helm ag/rg session
This allows filtering the current results to another pattern or to
specific file.
*** New helm grep ag action to launch ag/rg on parent directory of current search
*** Packages can now be (re)installed/upgraded asynchronously from helm-packages
It is now the default, you can customize this with =helm-packages-async=.
*** Helm-find-files persistent delete uses now a read-answer prompt
It is now possible to answer "!" (yes for all) when using marked
candidates, this for the file deletion itself and also for the kill
buffer question.
*** Allow saving selection when deleting minibuffer contents
This is now possible with a prefix arg given when position is at eol
in minibuffer. This allow for example showing all candidates keeping
current selection in helm-ls-git log after a search.
*** Save files opened from etags and fd in file-name-history
*** Provide help in helm-read-answer
*** Disable helm for read-multiple-choice--long-answers
** Version 3.9.9
*** Change prefix arg behavior of helm-show-all-candidates-in-source
With a prefix arg show all candidates, with a numeric prefix arg show
@@ -24,7 +106,7 @@ So it can safely be used as a replacement of "i" in Info.
as it is not working in some cases (e.g. symlinks).
*** Fix persistent action in helm mark-ring when follow mode is on
*** Fix Imenu preselection when point is on a name with special chars
*** Provide a new progress bar for rsync with a svg widget
*** Provide a new progress bar for rsync with a svg widget
Needs svg-lib package but it is not mandatory.

** Version 3.9.8
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -34,11 +34,10 @@
***

<p align="center">
Helm in action searching with <a href="https://github.com/ggreer/the_silver_searcher"<b>Grep Ag</b></a>
</p>
Helm in action browsing images</p>

<p align="center">
<img src="https://github.com/emacs-helm/helm/blob/master/images/helm-grep-ag-persistent.png?raw=true" alt="Emacs-helm grep ag" title="" />
<img src="https://github.com/emacs-helm/helm/blob/master/images/screenshot002.png?raw=true" alt="Emacs-helm grep ag" title="" />
</p>

[badge-license]: https://img.shields.io/badge/license-GPL_3-green.svg
@@ -51,3 +50,6 @@
alt="Donate monthly using Patreon"
style="height: 50px; width: auto;"
src="https://github.com/emacs-helm/helm/blob/master/images/patreon-25x.png?raw=true"></a>


[![](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/emacs-helm)
40 changes: 25 additions & 15 deletions emacs-helm.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env sh


## Copyright (C) 2012 ~ 2023 Thierry Volpiatto
## Copyright (C) 2012 ~ 2025 Thierry Volpiatto
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -156,27 +156,39 @@ fi


cat > $CONF_FILE <<EOF
(setq initial-scratch-message (concat initial-scratch-message
";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\n\
(setq initial-scratch-message
";; This buffer is for text that is not saved, and for Lisp evaluation.\\n\
;; You can hit \`C-j' at end of a lisp expression to eval it.\\n\\n\
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\n\
;; This Emacs is Powered by \`HELM' using\\n\
;; emacs program \"$EMACS\".\\n\
;; This is a minimal \`helm' configuration to discover \`helm' or debug it.\\n\
;; You can retrieve this minimal configuration in \"$CONF_FILE\".\\n\
;;
;; You can retrieve this minimal configuration in \"$CONF_FILE\",\\n\
;; to do this move cursor on the filename above and hit \`C-x C-f' and then RETurn.\\n\
;; Some original Emacs commands are replaced by their \`helm' counterparts:\\n\\n\
;; - \`find-file'(C-x C-f) =>\`helm-find-files'\\n\
;; - \`occur'(M-s o) =>\`helm-occur'\\n\
;; - \`list-buffers'(C-x C-b) =>\`helm-buffers-list'\\n\
;; - \`completion-at-point'(M-tab) =>\`helm-lisp-completion-at-point'[1]\\n\
;; - \`apropos-command'(C-h a) =>\`helm-apropos'\\n\
;; - \`dabbrev-expand'(M-/) =>\`helm-dabbrev'\\n\
;; - \`execute-extended-command'(M-x) =>\`helm-M-x'\\n\\n
;; Some other Emacs commands are \"helmized\" by \`helm-mode'.\\n\
;; [1] Coming with emacs-24.4, \`completion-at-point' is \"helmized\" by \`helm-mode'\\n\
;; - \`execute-extended-command'(M-x) =>\`helm-M-x'\\n\
;; - \`yank-pop'(M-y) =>\`helm-show-kill-ring'\\n\\n
;; \`helm-mode' is enabled which mean that most Emacs commands using completion\\n\
;; will use helm.\\n\
;; To start editing a file or to create a new file, visit it with \`C-x C-f'\\n\
;; and enter text in its buffer, to save your changes hit \`C-x C-s'.
;; Find context help for most Helm commands with \`C-h m' while helm is running.\\n\
;; You can also retrieve the whole user documentation with \`C-x c h h'.\\n\
;; For online documentation see \`https://github.com/emacs-helm/helm/wiki'.\\n\
;; \(Put cursor on url, hit \`C-x C-f' and then RETurn).\\n\
;; To quit this Emacs, hit \'C-x C-c'.\\n\
;; which provides Helm completion in many places like \`shell-mode'.\\n\
;; Find context help for most Helm commands with \`C-h m'.\\n\
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\n\\n"))
;; Note about keybindings in Emacs: \`C-' means \'Control-' and \`M-' \'Alt-'.\\n\
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\n\\n")
(setq load-path (quote $LOAD_PATH))
@@ -256,9 +268,7 @@ cat > $CONF_FILE <<EOF
(define-key global-map [remap dabbrev-expand] 'helm-dabbrev)
(define-key global-map [remap execute-extended-command] 'helm-M-x)
(define-key global-map [remap apropos-command] 'helm-apropos)
(unless (boundp 'completion-in-region-function)
(define-key lisp-interaction-mode-map [remap completion-at-point] 'helm-lisp-completion-at-point)
(define-key emacs-lisp-mode-map [remap completion-at-point] 'helm-lisp-completion-at-point))
(define-key global-map [remap yank-pop] 'helm-show-kill-ring)
(add-hook 'kill-emacs-hook #'(lambda () (and (file-exists-p "$CONF_FILE") (delete-file "$CONF_FILE"))))
EOF

2 changes: 1 addition & 1 deletion helm-adaptive.el
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
;; Original Author: Tamas Patrovics

;; Copyright (C) 2007 Tamas Patrovics
;; Copyright (C) 2012 ~ 2023 Thierry Volpiatto
;; Copyright (C) 2012 ~ 2025 Thierry Volpiatto

;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
Loading