Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:20
erlang
2713-Emacs-erlang-mode-Fix-bug-in-erlang-man-fu...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 2713-Emacs-erlang-mode-Fix-bug-in-erlang-man-function-and.patch of Package erlang
From 432fe52b54ee29ada5f1b326cef52dae607d82ca Mon Sep 17 00:00:00 2001 From: Kjell Winblad <kjellwinblad@gmail.com> Date: Wed, 9 Oct 2019 16:18:15 +0200 Subject: [PATCH 03/10] Emacs erlang-mode: Fix bug in erlang-man-function and add menu item Prior to this commit, the Emacs lisp function erlang-man-function would only go to the correct spot of the man page when a buffer for the man page existed before the function call. This commit fixes this issue. The commit also adds a menu item for the function erlang-man-function-no-prompt (erlang-man-function-no-prompt opens the documentation for a function without prompting the user). --- lib/tools/emacs/erlang.el | 76 +++++++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 35 deletions(-) diff --git a/lib/tools/emacs/erlang.el b/lib/tools/emacs/erlang.el index 110f231033..2c3ab264ab 100644 --- a/lib/tools/emacs/erlang.el +++ b/lib/tools/emacs/erlang.el @@ -1880,7 +1880,8 @@ the location of the manual pages." () (setq erlang-menu-man-items '(nil - ("Man - Function" erlang-man-function))) + ("Man - Function" erlang-man-function) + ("Man - Function Under Cursor" erlang-man-function-no-prompt))) (if erlang-man-dirs (setq erlang-menu-man-items (append erlang-menu-man-items @@ -2076,32 +2077,41 @@ This function is aware of imported functions." (require 'man) (setq name (or name (erlang-default-function-or-module))) - (let ((modname nil) - (funcname nil)) - (cond ((string-match ":" name) - (setq modname (substring name 0 (match-beginning 0))) - (setq funcname (substring name (match-end 0) nil))) - ((stringp name) - (setq modname name))) - (when (or (null modname) (string= modname "")) - (error "No Erlang module name given")) - (cond ((fboundp 'Man-notify-when-ready) - ;; Emacs 19: The man command could possibly start an - ;; asynchronous process, i.e. we must hook ourselves into - ;; the system to be activated when the man-process - ;; terminates. - (if (null funcname) - () - (erlang-man-patch-notify) - (setq erlang-man-function-name funcname)) - (condition-case err - (erlang-man-module modname) - (error (setq erlang-man-function-name nil) - (signal (car err) (cdr err))))) - (t - (erlang-man-module modname) - (when funcname - (erlang-man-find-function (current-buffer) funcname)))))) + (require 'cl) + (flet ((disp-man-page-erl-fun (name) + (let ((modname nil) + (funcname nil)) + (cond ((string-match ":" name) + (setq modname (substring name 0 (match-beginning 0))) + (setq funcname (substring name (match-end 0) nil))) + ((stringp name) + (setq modname name))) + (when (or (null modname) (string= modname "")) + (error "No Erlang module name given")) + (cond ((fboundp 'Man-notify-when-ready) + ;; Emacs 19: The man command could possibly start an + ;; asynchronous process, i.e. we must hook ourselves into + ;; the system to be activated when the man-process + ;; terminates. + (if (null funcname) + () + (erlang-man-patch-notify) + (setq erlang-man-function-name funcname)) + (condition-case err + (erlang-man-module modname) + (error (setq erlang-man-function-name nil) + (signal (car err) (cdr err))))) + (t + (erlang-man-module modname) + (when funcname + (erlang-man-find-function (current-buffer) funcname))))))) + (disp-man-page-erl-fun name) + (sleep-for 0 600) + ;; A hack to make sure that the function scrolls + ;; to the description of the function when it is + ;; the first time that the man page for a module + ;; is opened + (disp-man-page-erl-fun name))) (defun erlang-man-function-no-prompt () @@ -2111,14 +2121,10 @@ provides the same functionality as erlang-man-function except for that it does not ask the user to confirm the function name before opening the man page for the function." (interactive) - (progn - (erlang-man-function (erlang-default-function-or-module)) - (sleep-for 0 800) ; A hack to make sure that the function scrolls - ; to the description of the function when it is - ; the first time that the man page for a module - ; is opened - (erlang-man-function (erlang-default-function-or-module)) - )) + (let ((name (erlang-default-function-or-module))) + (if name + (erlang-man-function name) + (error "No function name under the cursor. Place the cursor over the function name you want to find the man page for and try again")))) ;; Should the defadvice be at the top level, the package `advice' would ;; be required. Now it is only required when this functionality -- 2.16.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor