New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
toggle-input-method is not working in helm-find-files #797
Comments
Related to #785 . |
Yes, in inheritance part. But this is just a tiny inconvenience. The real problem is with
|
This is really tricky to fix. With this code, we can set current-input-method in helm-buffer: (add-hook 'helm-before-initialize-hook (lambda () Now in a simple source like this: (helm :sources (helm-build-sync-source "test" We can input "cyrillic-ukrainian" chars in minibuffer to match some However it doesn't work (or partially) with others sources. Thierry |
Ok the problem comes from the updating of keymap, it seems it overhide self-insert-command. So from scratch buffer, following code allow entering local chars in minibuffer: (helm :sources (helm-build-sync-source "test"
:candidates (lambda () (directory-files default-directory t))
;:keymap (current-local-map)
)
:buffer "*helm test*") But as soon |
I guess this is due to how helm--maybe-update-keymap is implemented (using set-transient-map, set-temporary-overlay-map). |
Michael Heerdegen notifications@github.com writes:
Yes it comes from helm--maybe-update-keymap, but I still don't Thierry |
Thierry Volpiatto notifications@github.com writes:
set-transient-map works by setting overriding-terminal-local-map Obviously, setting overriding-terminal-local-map confuses input
in scratch in emacs -Q and try to use an input method. It wont work. |
Michael Heerdegen michael_heerdegen@web.de writes:
Though, I guess set-transient-map was never intended to be used like we |
Michael Heerdegen notifications@github.com writes:
It is documented, see documenation of input-method-function.
Probably, but it serve us well until now, and our task in helm is not Thierry |
Not really a fix, but this allow at least to use input-method in some commands. * helm-files.el (helm-source-ffiles, Helm-find-files): Do it. * helm-grep.el (helm-do-grep-1): Do it. * helm-mode.el (helm-read-file-name, helm-comp-read): Do it.
* helm.el (helm-initial-setup): Do it. (helm-before-initialize-hook, helm-after-initialize-hook): Fix docstring.
* helm.el (helm-minor-mode): New minor mode that run in minibuffer. (helm-read-pattern-maybe): Use it. Set also minor-mode-overriding-map-alist. (helm--maybe-update-keymap): Use minor-mode-overriding-map-alist to modify keymap on the fly.
Now with the helm-minor-mode branch, it should work. What should work ?
|
@Fuco1 You should try |
Tu Do notifications@github.com writes:
NO!!! helm-minor-mode should not be used by user, it is internal, IOW BTW I have renamed it to helm--minor-mode and make it unusable Thierry |
Ah so in other words input method won't be malfunctioned in the minibuffer anymore without doing anything? Nice. |
Tried in helm-find-files, works great: inherits keymap from the current buffer and allows to switch keymap. |
Tu Do notifications@github.com writes:
Yes. Thierry |
Eugene Diachkin notifications@github.com writes:
Great, merged to master.
You can see the current keymap bindings with Thierry |
Great, thank you! |
Hello.
Just noticed that
toggle-input-method
is not working inhelm-find-files
. You can type only latin characters, pressingC-\
does nothing.Meanwhile it does work in all
helm-mini
,helm-ls-git-ls
,helm-resume
.Furthermore,
helm-find-files
doesn't inherit input method from current buffer, it always resets to english.This basically means that I cannot visit directories or open files with non-latin names (cyrillic in my case) in any other way than with
dired
.Reproduced in clean
emacs -q
withEDIT: It's more tricky. Seems like it works, but in very weird way. Switching to russian input method and typing some arbitrary strings in
helm-find-files
inputs mostly latin characters, but sometimes few cyrillic characters appear, and then latin again.The text was updated successfully, but these errors were encountered: