[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] scratch/hyperbole-merge-7.0.2b bda4f2d 15/23: Merge remote-tracki
From: |
Stefan Monnier |
Subject: |
[elpa] scratch/hyperbole-merge-7.0.2b bda4f2d 15/23: Merge remote-tracking branch 'hyperbole/master' into externals/hyperbole |
Date: |
Tue, 5 Feb 2019 16:11:20 -0500 (EST) |
branch: scratch/hyperbole-merge-7.0.2b
commit bda4f2d4f39e422577a3b53f1d97e53a90f578df
Merge: 29b1b76 450489e
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>
Merge remote-tracking branch 'hyperbole/master' into externals/hyperbole
---
Changes | 65 +++++++++++++
Makefile | 8 +-
hib-social.el | 281 +++++++++++++++++++++++++++++++++++++++++++++++------
hmouse-drv.el | 51 +++++++---
hmouse-key.el | 2 +-
hpath.el | 18 ++--
hsettings.el | 34 ++++++-
hsys-org.el | 30 ++++--
hui-jmenu.el | 5 +-
hui-mini.el | 3 +-
hui-mouse.el | 3 +-
hui-select.el | 15 ++-
hui-treemacs.el | 18 ++--
hui-window.el | 2 +-
hui.el | 2 +-
hypb.el | 17 +---
hyperbole.el | 23 +----
hyrolo.el | 2 +-
kotl/kexport.el | 14 +--
kotl/kfill.el | 3 +-
kotl/kotl-mode.el | 4 +-
man/hyperbole.pdf | Bin 1263857 -> 1263857 bytes
man/hyperbole.texi | 4 +-
man/im/C-hh.png | Bin 898836 -> 737355 bytes
24 files changed, 479 insertions(+), 125 deletions(-)
diff --git a/Changes b/Changes
index c3e5d81..05f61bf 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,68 @@
+2017-12-29 Bob Weiner <address@hidden>
+
+* hsettings.el (inhibit-hyperbole-messaging): Moved this from hyperbole.el to
here to prevent
+ it being reset when hyperbole-toggle-messaging reloads the hyperbole
library.
+
+2017-12-20 Bob Weiner <address@hidden>
+
+* kotl/kexport.el (kexport:html-file-klink)
+ (kexport:html):
+ (kexport:html-replacement-alist): Added 'k' to precede klink
HTML HREF
+ references since these must start with a letter.
+
+* hui-select.el (hui-select-get-region): Added this to be used in other
libraries.
+ (hui-select-get-region-boundaries): Added and used in
hui-select-thing.
+
+2017-12-19 Bob Weiner <address@hidden>
+
+* hib-social.el (github-reference, gitlab-reference): Added "people" reference
support
+ to list people who are part of a formal organization as well as a "staff"
alias.
+ Added "contributors" reference support to list project contributors as
well.
+
+2017-12-19 Bob Weiner <address@hidden>
+
+* hib-social.el (github-reference): Added =item-id syntax.
+ (gitlab-reference): Added to support Gitlab references.
+
+2017-12-18 Bob Weiner <address@hidden>
+
+* hib-social.el (github-reference): Fixed resolution of these formats of issue
reference:
+ gh#gh-34 and gh#issue/34 (needed to be plural).
+
+2017-12-17 Bob Weiner <address@hidden>
+
+* kotl/kfill.el: Eliminated use of filladapt.el since it causes kotl-mode
filling errors.
+
+* kotl/kfill.el (kfill:forward-line): Removed improperly used [] in
skip-chars-forward.
+
+2017-12-16 Bob Weiner <address@hidden>
+
+* hui.el (hui:key-dir):
+ hui-window.el (hmouse-at-item-p):
+ hui-jmenu.el (hui-menu-buffer-mode-name): Simplified using
buffer-local-value.
+
+2017-12-15 Bob Weiner <address@hidden>
+
+* hmouse-drv.el (hkey-throw): Fully resolved temporary display of newly
created frames
+ with a (redisplay t) to force display of any window updates during the
temporary
+ display.
+
+2017-12-13 Bob Weiner <address@hidden>
+
+* hmouse-drv.el (hkey-throw): Partially solved temporary display of newly
created frames
+ (when not given focus initially with a '(no-focus-on-map . t) property),
so hkey-throw
+ to a new target frame now temporarily displays the target frame and then
makes the start
+ frame the uppermost frame. When on an item though, the item is not
visible during the
+ temporary display yet.
+
+* Makefile (texinfo): Added texinfo dependency target and added additional
image dependencies
+ in man/im.
+
+* hyperbole.el (require 'hmouse-drv): Changed from hmouse-key to prevent a
require cycle
+ during macro expansion.
+ hmouse-key.el: Changed requires to just be during compile since hyperbole.el
now includes
+ these requires and will load hmouse-key.
+
2017-12-12 Bob Weiner <address@hidden>
* hversion.el: Pushed 7.0.2a test update.
diff --git a/Makefile b/Makefile
index f42df35..2565fe2 100644
--- a/Makefile
+++ b/Makefile
@@ -256,16 +256,18 @@ version: doc
# Build the Info, HTML and Postscript versions of the user manual and
README.md.html.
doc: info html pdf README.md.html
+TEXINFO_SRC = $(man_dir)/hyperbole.texi $(man_dir)/version.texi
$(man_dir)/hkey-help.txt $(man_dir)/im/*.png
+
info: $(man_dir)/hyperbole.info
-$(man_dir)/hyperbole.info: $(man_dir)/hyperbole.texi $(man_dir)/version.texi
$(man_dir)/hkey-help.txt
+$(man_dir)/hyperbole.info: $(TEXINFO_SRC)
cd $(man_dir) && $(TEXI2INFO) hyperbole.texi
html: $(man_dir)/hyperbole.html
-$(man_dir)/hyperbole.html: $(man_dir)/hyperbole.texi $(man_dir)/version.texi
$(man_dir)/hkey-help.txt $(man_dir)/hyperbole.css
+$(man_dir)/hyperbole.html: $(TEXINFO_SRC) $(man_dir)/hyperbole.css
cd ${man_dir} && $(TEXI2HTML) hyperbole.texi
pdf: $(man_dir)/hyperbole.pdf
-$(man_dir)/hyperbole.pdf: $(man_dir)/hyperbole.texi $(man_dir)/version.texi
$(man_dir)/hkey-help.txt
+$(man_dir)/hyperbole.pdf: $(TEXINFO_SRC)
cd $(man_dir) && $(TEXI2PDF) hyperbole.texi
# github-markdown is an npm, installed with: npm install markdown-to-html -g
diff --git a/hib-social.el b/hib-social.el
index 2f0e550..29df535 100644
--- a/hib-social.el
+++ b/hib-social.el
@@ -16,11 +16,11 @@
;; When the referent is a web page, this calls the function given by
;; `hibtypes-social-display-function' to display it, initially set to
`browse-url'.
;;
-;; A hashtag reference is either:
[facebook|github|git|instagram|twitter]#<hashtag>
-;; or using 2-letter service abbreviations: [fb|gh|gt|in|tw]#<hashtag>.
+;; A hashtag reference is either:
[facebook|github|gitlab|git|instagram|twitter]#<hashtag>
+;; or using 2-letter service abbreviations: [fb|gh|gl|gt|in|tw]#<hashtag>.
;;
-;; A username reference is either:
[facebook|github|instagram|twitter]@<username>
-;; or [fb|gh|in|tw]@<username>.
+;; A username reference is either:
[facebook|github|gitlab|instagram|twitter]@<username>
+;; or [fb|gh|gl|in|tw]@<username>.
;;
;; If the social media service is not given, it defaults to the value of
;; `hibtypes-social-default-service', initially set to \"twitter\".
@@ -32,6 +32,7 @@
;; address@hidden Display user's home page
;; address@hidden
+;; address@hidden
;; address@hidden
;; address@hidden
@@ -98,7 +99,8 @@
;; gh#rswgnu/helm/global_mouse Display user project's branch
;; gh#rswgnu/hyperbole/55a1f0 Display user project's commit
diff
;;
-;; gh#orgs/github/people List the org, github's staff
+;; gh#orgs/github/people (or staff) List the org, github's staff
+;; gh#/github/fetch/contributors List contributors to github's
fetch project
;;
;; (setq hibtypes-github-default-user "rswgnu")
;; github#/hyperbole Display default user's project
@@ -112,12 +114,12 @@
;;
;; like so:
;;
-;; gh#issues List emacs-helm/helm's open
issues
-;; gh#1878 Display a specific project
issue
-;;
-;; gh#pulls List project's open pull
requests
+;; gh#pulls List project's open pull
requests (PRs)
;; gh#pull/1871 Display a specific project
pull request
;;
+;; gh#issues List emacs-helm/helm's open
issues
+;; gh#1878 Display a specific project
issue (or PR)
+;;
;; gh#branches List project's branches
;; gh#branch/global_mouse List files in a specific
branch
;; gh#global_mouse You can even leave off the
`branch' keyword
@@ -129,6 +131,40 @@
;; gh#898e55c Display default user and
default
;; project commit diff
+;; Gitlab (remote) reference links support the same reference types as
Github (but
+;; substitute the gl# prefix) plus these additional reference types:
+;;
+;; gl#/libertybsd/libertybsd-status Group and project
+;;
+;; gl#gitlab-org/gitlab-ce/activity Summarize user's project
activity
+;; gl#gitlab-org/gitlab-ce/analytics Display user project's
cycle_analytics
+;; gl#gitlab-org/gitlab-ce/boards Display user project's
kanban-type issue boards
+;;
+;; Once you set the default user and project variables, you can leave
+;; them off any reference links:
+;;
+;; (setq hibtypes-gitlab-default-user "gitlab-org")
+;; (setq hibtypes-gitlab-default-project "gitlab-ce")
+;;
+;; gl#issues or gl#list Display default project's
issue list
+;; gl#jobs Display default project's
computing jobs
+;; gl#labels Display default project's
issue categories
+;; gl#members Display default project's
staff list
+;; gl#contributors Show contributor push
frequency charts
+;; gl#merge_requests or gl#pulls Display default project's
pull requests
+;; gl#milestones Display default project's
milestones status
+;; gl#pages Display default project's web
pages
+;; gl#pipelines List build and test sequences
+;; gl#pipeline_charts Graphical view of pipeline
run results across time
+;; gl#schedules Display schedules for project
pipelines
+;; gl#snippets Project snippets, diffs and
text with discussion
+;;
+;; gl#groups List all available groups of
projects
+;; gl#projects List all available projects
+;;
+;; gl#milestone=38 Show a specific project
milestone
+;; gl#snippet/1689487 Show a specific project
snippet
+
;;; Code:
;;; ************************************************************************
;;; Other required Elisp libraries
@@ -147,6 +183,7 @@
:type '(radio (const "facebook")
(const "git")
(const "github")
+ (const "gitlab")
(const "instagram")
(const "twitter"))
:group 'hyperbole-button)
@@ -171,6 +208,16 @@
:type 'string
:group 'hyperbole-button)
+(defcustom hibtypes-gitlab-default-project nil
+ "Default project name to associate with any Github commit link."
+ :type 'string
+ :group 'hyperbole-button)
+
+(defcustom hibtypes-gitlab-default-user nil
+ "Default user name to associate with any Github commit link."
+ :type 'string
+ :group 'hyperbole-button)
+
;;; ************************************************************************
;;; Private variables
;;; ************************************************************************
@@ -178,6 +225,7 @@
(defconst hibtypes-social-hashtag-alist
'(("\\`\\(fb\\|facebook\\)\\'" . "https://www.facebook.com/hashtag/%s")
("\\`\\(gh\\|github\\)\\'" . "https://github.com/%s/%s/%s%s")
+ ("\\`\\(gl\\|gitlab\\)\\'" . "https://www.gitlab.com/%s/%s/%s%s")
("\\`\\(gt\\|git\\)\\'" . "(cd %s; git %s %s)")
("\\`\\(in\\|instagram\\)\\'" .
"https://www.instagram.com/explore/tags/%s/")
("\\`\\(tw\\|twitter\\)\\'" .
"https://twitter.com/search?q=%%23%s&src=hashtag")
@@ -187,6 +235,7 @@
(defconst hibtypes-social-username-alist
'(("\\`\\(fb\\|facebook\\)\\'" . "https://www.facebook.com/%s")
("\\`\\(gh\\|github\\)\\'" . "https://github.com/%s/")
+ ("\\`\\(gl\\|gitlab\\)\\'" . "https://www.gitlab.com/%s/")
("\\`\\(in\\|instagram\\)\\'" . "https://www.instagram.com/%s/")
("\\`\\(tw\\|twitter\\)\\'" . "https://twitter.com/address@hidden")
)
@@ -212,8 +261,8 @@ See `ibtypes::social-reference' for format details.")
(defib social-reference ()
"Display the web page associated with a social hashtag or username reference
at point.
Reference format is:
- [facebook|git|github|instagram|address@hidden<reference> or
- [fb|gt|gh|in|address@hidden<reference>.
+ [facebook|git|github|gitlab|instagram|address@hidden<reference> or
+ [fb|gt|gh|gl|in|address@hidden<reference>.
The first part of the label for a button of this type is the social
service name. The service name defaults to the value of
@@ -257,6 +306,8 @@ listed in `hibtypes-social-inhibit-modes'."
(hact 'git-reference after-hash-str))
((string-match "\\`\\(gh\\|github\\)#" ref)
(hact 'github-reference after-hash-str))
+ ((string-match "\\`\\(gl\\|gitlab\\)#" ref)
+ (hact 'gitlab-reference after-hash-str))
(t (hact 'social-reference service ref-kind-str after-hash-str))))))
;; Don't make this a defact or its arguments may be improperly expanded as
pathnames.
@@ -289,10 +340,11 @@ REFERENCE is a string of one of the following forms:
or /<project>.
<ref-item> is one of these:
- one of the words: branches, commits, issues, pulls, or tags; the associated
items are listed;
+ one of the words: branches, commits, contributors, issues, people or staff,
+ pulls, status or tags; the associated items are listed;
- one of the words: branch, commit, issue, pull or tag followed by a '/' and
- item id; the item is shown;
+ one of the words: branch, commit, issue, pull or tag followed by a '/' or
'=' and
+ an item-id; the item is shown;
an issue reference given by a positive integer, e.g. 92 or prefaced with
GH-, e.g. GH-92;
the issue is displayed;
@@ -314,7 +366,7 @@ PROJECT value is provided, it defaults to the value of
(url-to-format (assoc-default "github"
hibtypes-social-hashtag-alist #'string-match))
(ref-type))
(when url-to-format
- (cond ((string-match
"\\`\\(branch\\|commit\\|issue\\|pull\\|tag\\)/" reference)
+ (cond ((string-match
"\\`\\(branch\\|commit\\|issue\\|pull\\|tag\\)[/=]" reference)
;; [branch | commit | issue | pull | tag]/ref-item
nil)
((string-match
"\\`/?\\(\\([^/address@hidden)/\\)\\([^/address@hidden)\\'" reference)
@@ -331,25 +383,34 @@ PROJECT value is provided, it defaults to the value of
;; /project
(setq project (or project (match-string-no-properties 1
reference))
reference nil)))
+ (when (or (and project (string-match
"\\`\\(members\\|people\\|staff\\)\\'" project))
+ ;; Change <org-name>/[members|people|staff] to
/orgs/<org-name>/people.
+ (and reference (string-match
"\\`\\(members\\|people\\|staff\\)\\'" reference)))
+ ;; Change <org-name>/project/[people|staff] to
/orgs/<org-name>/people.
+ (setq project user
+ user "orgs"
+ reference "people"))
+ (when (equal reference "contributors")
+ ;; Change /user/project/contributors to
/user/project/graphs/contributors.
+ (setq ref-type "graphs/"
+ reference "contributors"))
(unless (stringp user) (setq user hibtypes-github-default-user))
(unless (stringp project) (setq project
hibtypes-github-default-project))
(when reference
- (cond ((equal user "orgs")
- ;; A specific organization reference
- (setq ref-type reference
- reference ""))
- ((member reference '("branches" "commits" "issues"
"pulls" "tags"))
- ;; All branches, commits, open issues, pull requests or
commit tags reference
+ (cond ((member reference '("branches" "commits" "contributors"
"issues" "people" "pulls" "tags"))
+ ;; All branches, commits, contributors, open issues,
people, pull requests or commit tags reference
(setq ref-type reference
reference ""))
- ((and (< (length reference) 7) (string-match
"\\`\\([gG][hH]-\\)?[0-9]+\\'" reference))
- ;; Specific issue reference
- (setq ref-type "issues/"))
- ((string-match "\\`\\(commit\\|issue\\|pull\\)/"
reference)
+ ((and (< (length reference) 8) (string-match
"\\`\\([gG][hH]-\\)?[0-9]+\\'" reference))
+ ;; Issue ref-id reference
+ (setq ref-type "issues/"
+ reference (substring reference (match-end 1)
(match-end 0))))
+ ((string-match "\\`\\(commit\\|issue\\|pull\\)[/=]"
reference)
;; Specific reference preceded by keyword branch,
commit,
;; issue, or pull
- (setq ref-type (substring reference 0 (match-end 0))
- reference (substring reference (match-end 0))))
+ (setq ref-type (substring reference 0 (match-end 1))
+ reference (substring reference (match-end 0))
+ ref-type (concat ref-type (if (string-equal
ref-type "issue") "s/" "/"))))
((string-match "\\`[0-9a-f]+\\'" reference)
;; Commit reference
(setq ref-type "commit/"))
@@ -363,7 +424,8 @@ PROJECT value is provided, it defaults to the value of
(funcall hibtypes-social-display-function
(if reference
(format url-to-format user project ref-type
reference)
- (format url-to-format user project "" "")))
+ ;; Remove trailing /
+ (substring (format url-to-format user project ""
"") 0 -1)))
(cond ((and (null user) (null project))
(error "(github-reference): Set
`hibtypes-github-default-user' and `hibtypes-github-default-project'"))
((null user)
@@ -373,6 +435,169 @@ PROJECT value is provided, it defaults to the value of
(unless url-to-format
(error "(github-reference): Add an entry for github to
`hibtypes-social-hashtag-alist'"))))))
+;;; Remote Gitlab commit references
+
+;; Don't make this a defact or its arguments may be improperly expanded as
pathnames.
+(defun gitlab-reference (reference &optional user project)
+ "Display the Gitlab entity associated with REFERENCE and optional USER and
PROJECT.
+REFERENCE is a string of one of the following forms:
+ <ref-item>
+ <user>/<project>/<ref-item>
+ <project>/<ref-item>
+ /<group>/<project>
+or /<project-or-group> (where a group is a collection of projects).
+
+<ref-item> is one of these:
+ one of the words: activity, analytics, boards or kanban, branches, commits,
contributors,
+ groups, issues or list, jobs, labels, merge_requests, milestones, pages,
pipelines,
+ pipeline_charts, members or people or staff, projects, pulls, schedules,
snippets,
+ status or tags; the associated items are listed;
+
+ one of the words: branch, commit(s), issue(s), milestone(s), pull(s),
snippet(s) or
+ tag(s) followed by a '/' or '=' and an item-id; the item is shown;
+
+ an issue reference given by a positive integer, e.g. 92 or prefaced with
GL-, e.g. GL-92;
+ the issue is displayed;
+
+ a commit reference given by a hex number, 55a1f0; the commit diff is
displayed;
+
+ a branch or tag reference given by an alphanumeric name, e.g. hyper20; the
+ files in the branch are listed.
+
+USER defaults to the value of `hibtypes-gitlab-default-user'.
+If given, PROJECT overrides any project value in REFERENCE. If no
+PROJECT value is provided, it defaults to the value of
+`hibtypes-gitlab-default-project'."
+ (cond ((or (null reference) (equal reference ""))
+ (error "(gitlab-reference): Gitlab reference must not be empty"))
+ ((equal reference "status")
+ (funcall hibtypes-social-display-function "https://status.gitlab.com"))
+ (t (let ((case-fold-search t)
+ (url-to-format (assoc-default "gitlab"
hibtypes-social-hashtag-alist #'string-match))
+ (ref-type))
+ (when url-to-format
+ (cond ((string-match
"\\`\\(branch\\|commits?\\|issues?\\milestones?\\|pulls?\\|snippets?\\|tags?\\)[/=]"
reference)
+ ;; Reference to a specific ref-item
+ nil)
+ ((string-match
"\\`/?\\(\\([^/address@hidden)/\\)\\([^/address@hidden)\\'" reference)
+ ;; /?user/project
+ (setq user (or user (match-string-no-properties 2
reference))
+ project (or project (match-string-no-properties 3
reference))
+ reference nil))
+ ((string-match
"\\`/?\\(\\([^/address@hidden)/\\)?\\([^/address@hidden)/\\(address@hidden)\\'"
reference)
+ ;; /?[user/]project/ref-item
+ (setq user (or user (match-string-no-properties 2
reference))
+ project (or project (match-string-no-properties 3
reference))
+ reference (match-string-no-properties 4 reference)))
+ ((string-match "\\`/\\([^/address@hidden)\\'" reference)
+ ;; /project
+ (setq project (or project (match-string-no-properties 1
reference))
+ reference nil)))
+ (when (and (null (and user project)) (string-match
"\\`\\(groups\\|projects\\)\\'" reference))
+ ;; List all available groups of projects or projects.
+ (setq user "explore"
+ project (match-string-no-properties 1 reference)
+ ref-type nil
+ reference nil))
+ (unless (stringp user) (setq user hibtypes-gitlab-default-user))
+ (unless (stringp project) (setq project
hibtypes-gitlab-default-project))
+ (when (equal project "pages")
+ ;; Project web pages use a reverse pages/<project> URL format
+ (setq project user
+ user "pages"
+ ref-type nil
+ reference nil))
+ (when reference
+ (cond ((string-match
"\\`\\(analytics\\|cycle_analytics\\)\\'" reference)
+ ;; Project analytics
+ (setq ref-type "cycle_analytics"
+ reference ""))
+ ((string-match "\\`\\(boards\\|kanban\\)\\'" reference)
+ ;; Kanban-type Issue Stage Boards
+ (setq ref-type "boards"
+ reference ""))
+ ((equal reference "jobs")
+ ;; Manual/automated project-related jobs that run
+ (setq ref-type "-/jobs"
+ reference ""))
+ ((equal reference "list")
+ ;; List all issues
+ (setq ref-type "issues"
+ reference ""))
+ ((equal reference "contributors")
+ (setq ref-type "graphs/master"
+ reference ""))
+ ((string-match "\\`\\(members\\|people\\|staff\\)\\'"
reference)
+ (setq ref-type "project_members"
+ reference ""))
+ ((equal reference "pipeline_charts")
+ ;; Continuous Integration Pipeline Charts
+ (setq ref-type "pipelines/charts"
+ reference ""))
+ ((equal reference "pulls")
+ ;; Merge requests for the project
+ (setq ref-type "merge_requests"
+ reference ""))
+ ((equal reference "schedules")
+ ;; Schedules for CI Pipelines
+ (setq ref-type "pipeline_schedules"
+ reference ""))
+ ((string-match "\\`\\(service\\|service_desk\\)\\'"
reference)
+ ;; Project help desk
+ (setq ref-type "issues/service_desk"
+ reference ""))
+ ((member reference '("activity" "branches" "commits"
"issues" "labels"
+ "merge_requests" "milestones"
"pages" "pipelines"
+ "snippets" "tags"))
+ ;; All activity, branches, commits, cycle analytics,
open issues, issue labels,
+ ;; members, merge requests, milestones, web pages, pull
requests, code snippets
+ ;; or commit tags reference
+ (setq ref-type reference
+ reference ""))
+ ((and (< (length reference) 8) (string-match
"\\`\\([gG][lL]-\\)?[0-9]+\\'" reference))
+ ;; Issue ref-id reference
+ (setq ref-type "issues/"
+ reference (substring reference (match-end 1)
(match-end 0))))
+ ((string-match "\\`label[/=]" reference)
+ ;; Labeled category of issues
+ (setq ref-type "issues?label_name%5B%5D="
+ reference (substring reference (match-end 0))))
+ ((string-match
"\\`\\(commit\\|issues\\|milestones\\|pull\\|snippets\\|tags\\)[/=]" reference)
+ ;; Ref-id preceded by a keyword
+ (setq ref-type (concat (substring reference 0
(match-end 1)) "/")
+ reference (substring reference (match-end 0))))
+ ((string-match
"\\`\\(issue\\|milestone\\|snippet\\|tag\\)[/=]" reference)
+ ;; Ref-id preceded by a singular keyword that must be
converted to plural
+ (setq ref-type (concat (substring reference 0
(match-end 1)) "s/")
+ reference (substring reference (match-end 0))))
+ ((string-match "\\`\\(commit\\|pull\\)s[/=]" reference)
+ ;; Ref-id preceded by a plural keyword that must be
converted to singular
+ (setq ref-type (concat (substring reference 0
(match-end 1)) "/")
+ reference (substring reference (1+ (match-end
0)))))
+ ((string-match "\\`[0-9a-f]+\\'" reference)
+ ;; Commit reference
+ (setq ref-type "commit/"))
+ (t
+ ;; Specific branch or commit tag reference
+ (setq ref-type "tree/")
+ (when (string-match "\\`\\(branch\\|tag\\)[/=]"
reference)
+ ;; If preceded by optional keyword, remove that from
the reference.
+ (setq reference (substring reference (match-end
0)))))))
+ (if (and (stringp user) (stringp project))
+ (funcall hibtypes-social-display-function
+ (setq a (if reference
+ (format url-to-format user project ref-type
reference)
+ ;; Remove trailing /
+ (substring (format url-to-format user project
"" "") 0 -1))))
+ (cond ((and (null user) (null project))
+ (error "(gitlab-reference): Set
`hibtypes-gitlab-default-user' and `hibtypes-gitlab-default-project'"))
+ ((null user)
+ (error "(gitlab-reference): Set
`hibtypes-gitlab-default-user'"))
+ (t
+ (error "(gitlab-reference): Set
`hibtypes-gitlab-default-project'")))))
+ (unless url-to-format
+ (error "(gitlab-reference): Add an entry for gitlab to
`hibtypes-social-hashtag-alist'"))))))
+
;;; Local git repository commit references
(defib git-commit-reference ()
diff --git a/hmouse-drv.el b/hmouse-drv.el
index dd23391..8f079e8 100644
--- a/hmouse-drv.el
+++ b/hmouse-drv.el
@@ -442,38 +442,63 @@ Leave TO-WINDOW as the selected window."
(aw-select mode-line-text))))
(hkey-swap-buffers (selected-window) to-window))
+;; Once the "display-until.el" library is added to Emacs, hkey-throw can be
simplified to the following:
+;;
+;; (defun hkey-throw (release-window)
+;; "Throw either a displayable item at point or the current buffer for
display in RELEASE-WINDOW.
+;; The selected window does not change."
+;; (interactive
+;; (list (let ((mode-line-text (concat " Ace - " (nth 2 (assq ?t
aw-dispatch-alist)))))
+;; (aw-select mode-line-text))))
+;; (if (cadr (assq major-mode hmouse-drag-item-mode-forms))
+;; ;; Throw the item at point
+;; (let ((action-key-depress-window (selected-window))
+;; (action-key-release-window release-window)
+;; (action-key-depress-args))
+;; (hmouse-item-to-window)
+;; (select-window action-key-depress-window)
+;; (display-window-until release-window))
+;; ;; Throw the current buffer
+;; (display-window-until release-window (current-buffer))))
+
;;;###autoload
(defun hkey-throw (release-window)
- "Throw either a displayable item at point or the current buffer to
RELEASE-WINDOW.
+ "Throw either a displayable item at point or the current buffer for display
in RELEASE-WINDOW.
The selected window does not change."
(interactive
(list (let ((mode-line-text (concat " Ace - " (nth 2 (assq ?t
aw-dispatch-alist)))))
(aw-select mode-line-text))))
- (let ((depress-frame (selected-frame)))
+ (let ((depress-frame (selected-frame))
+ (display-delay (if (boundp 'temp-display-delay)
+ temp-display-delay
+ 0.5)))
(if (cadr (assq major-mode hmouse-drag-item-mode-forms))
- ;; On an item to throw
+ ;; Throw the item at point
(let ((action-key-depress-window (selected-window))
(action-key-release-window release-window)
(action-key-depress-args))
(hypb:save-selected-window-and-input-focus
(hmouse-item-to-window)
(unless (eq depress-frame (window-frame release-window))
- (message "Buffer or item thrown to frame under this one")
+ ;; Force redisplay or item buffer won't be displayed here.
+ (redisplay t)
;; Show the frame thrown to before it is covered when
;; input-focus is returned to the depress-frame.
- ;; (raise-frame (window-frame release-window))
- ;; (sit-for 1)
+ (raise-frame (window-frame release-window))
+ ;; Don't use sit-for here because it can be interrupted early.
+ (sleep-for display-delay)
)))
;; Throw the current buffer
(set-window-buffer release-window (current-buffer))
(unless (eq depress-frame (window-frame release-window))
- (message "Buffer or item thrown to frame under this one")
+ ;; Force redisplay or item buffer won't be displayed here.
+ (redisplay t)
;; Show the frame thrown to before it is covered when
;; input-focus is returned to the depress-frame.
- ;; (raise-frame (window-frame release-window))
- ;; (sit-for 1)
- ;; (select-frame-set-input-focus depress-frame)
- ))))
+ (raise-frame (window-frame release-window))
+ ;; Don't use sit-for here because it can be interrupted early.
+ (sleep-for display-delay)
+ (select-frame-set-input-focus depress-frame)))))
;;;###autoload
(defun hkey-buffer-to (from-window to-window)
@@ -881,7 +906,7 @@ Only works when running under a window system, not from a
dumb terminal."
(assist-key-depress)
(when (called-interactively-p 'interactive)
(message
- "Assist Key depressed; go to release point and hit {%s %s}."
+ "Assist Key depressed; go to release point and press {%s %s}."
(substitute-command-keys "\\[universal-argument]")
(substitute-command-keys "\\[hkey-operate]"))))
(if action-key-depressed-flag
@@ -890,7 +915,7 @@ Only works when running under a window system, not from a
dumb terminal."
(message "Action Key released.")))
(action-key-depress)
(when (called-interactively-p 'interactive)
- (message "Action Key depressed; go to release point and hit {%s}."
+ (message "Action Key depressed; go to release point and press {%s}."
(substitute-command-keys "\\[hkey-operate]"))))))
(defun hkey-summarize (&optional current-window)
diff --git a/hmouse-key.el b/hmouse-key.el
index 81e0fd8..9408eb8 100644
--- a/hmouse-key.el
+++ b/hmouse-key.el
@@ -26,7 +26,7 @@
;;; Other required Elisp libraries
;;; ************************************************************************
-(eval-and-compile (mapc #'require '(hsettings hmouse-drv hmouse-sh)))
+(eval-when-compile (mapc #'require '(hsettings hmouse-drv hmouse-sh)))
;;; ************************************************************************
;;; Public functions
diff --git a/hpath.el b/hpath.el
index d26678d..47d632e 100644
--- a/hpath.el
+++ b/hpath.el
@@ -4,7 +4,7 @@
;;
;; Orig-Date: 1-Nov-91 at 00:44:23
;;
-;; Copyright (C) 1991-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991-2019 Free Software Foundation, Inc.
;; See the "HY-COPY" file for license information.
;;
;; This file is part of GNU Hyperbole.
@@ -372,6 +372,15 @@ directories. The first one in which PATH is found is
used."
(or (file-exists-p rtn) (setq rtn nil)))
(or rtn path)))))
+(defun hpath:tramp-file-name-regexp ()
+ "Returns a modified tramp-file-name-regexp used for checking if
+point is at the beginning of a remote file name. Removes match
+to bol and remove match to empty string if present."
+ (let ((tramp-regexp (car (if (fboundp 'tramp-file-name-structure)
+ (tramp-file-name-structure)
+ tramp-file-name-structure))))
+ (substring-no-properties (replace-regexp-in-string "\\\\'" ""
tramp-regexp) 1)))
+
(defun hpath:remote-at-p ()
"Returns a remote pathname that point is within or nil.
See the `(emacs)Remote Files' info documentation for pathname format details.
@@ -385,10 +394,7 @@ Always returns nil if (hpath:remote-available-p) returns
nil."
(skip-chars-backward "^[ \t\n\r\f\"`'|\(\{<")
(cond
((and (eq remote-package 'tramp)
- ;; Remove match to bol in this regexp before testing.
- (looking-at (substring-no-properties (car (if (fboundp
'tramp-file-name-structure)
-
(tramp-file-name-structure)
-
tramp-file-name-structure)) 1)))
+ (looking-at (hpath:tramp-file-name-regexp)))
(match-string-no-properties 0))
((looking-at hpath:url-regexp)
(if (string-equal (match-string-no-properties
hpath:protocol-grpn) "ftp")
@@ -660,7 +666,7 @@ program)."
(hpath:command-string display-executables
filename))
nil)
- ((hypb:functionp display-executables)
+ ((functionp display-executables)
(funcall display-executables filename)
t)
((and (listp display-executables) display-executables)
diff --git a/hsettings.el b/hsettings.el
index 1962fcb..7156336 100644
--- a/hsettings.el
+++ b/hsettings.el
@@ -123,6 +123,19 @@ down a windowful."
(hyperbole-menubar-menu)
(hyperbole-minibuffer-menu))
+(defcustom hyperbole-default-web-search-term-max-lines 2
+ "Provide a default search term using the selected text if the
+active region contains less than or equal to this number of
+lines"
+ :type 'integer
+ :group 'hyperbole-commands)
+
+(defun hyperbole-default-web-search-term ()
+ "Fetch a default search term if region is active and not to big"
+ (and (region-active-p)
+ (<= (count-lines (region-beginning) (region-end))
hyperbole-default-web-search-term-max-lines)
+ (buffer-substring (region-beginning) (region-end))))
+
(defun hyperbole-read-web-search-arguments (&optional service-name search-term)
"Read from the keyboard a list of (web-search-service-string
search-term-string) if not given as arguments."
(let ((completion-ignore-case t))
@@ -130,7 +143,8 @@ down a windowful."
(setq service-name (completing-read "Search service: "
hyperbole-web-search-alist
nil t)))
(while (or (not (stringp search-term)) (equal search-term ""))
- (setq search-term (read-string (format "Search %s for: " service-name))))
+ (setq search-term (read-string (format "Search %s for: " service-name)
+ (hyperbole-default-web-search-term))))
(list service-name search-term)))
(defun hyperbole-web-search (&optional service-name search-term)
@@ -149,6 +163,24 @@ package to display search results."
search-term)))
(user-error "(Hyperbole): Invalid web search service `%s'"
service-name))))
+(defcustom inhibit-hyperbole-messaging t
+ "*Determines whether Hyperbole supports explicit buttons in mail and news
buffers.
+The default of t means disable such support (work remains to
+modernize these features). When t, Hyperbole will not alter
+messaging mode hooks nor overload functions from these packages,
+preventing potential incompatibilities.
+
+If you want to use Hyperbole buttons in mail and news buffers, set
+this variable to nil by adding (hyperbole-toggle-messaging 1)
+to your personal Emacs initialization file, prior to loading
+Hyperbole, and then restart Emacs."
+ :type 'boolean
+ :initialize 'custom-initialize-set
+ :set (lambda (symbol value)
+ ;; Invert value to produce ARG for hyperbole-toggle-messaging.
+ (hyperbole-toggle-messaging (if value 0 1)))
+ :group 'hyperbole-buttons)
+
(defcustom hyperbole-web-search-browser-function browse-url-browser-function
"*Function of one url argument called by any Hyperbole Find/Web search."
:type 'boolean
diff --git a/hsys-org.el b/hsys-org.el
index f9604db..05ae899 100644
--- a/hsys-org.el
+++ b/hsys-org.el
@@ -4,16 +4,16 @@
;;
;; Orig-Date: 2-Jul-16 at 14:54:14
;;
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016,2018 Free Software Foundation, Inc.
;; See the "HY-COPY" file for license information.
;;
;; This file is part of GNU Hyperbole.
;;; Commentary:
;;
-;; This defines a context-sensitive implicit button type, org-mode, triggered
-;; when the major mode is org-mode and point is anywhere other than
-;; the end of a line.
+;; This defines a context-sensitive implicit button type, org-mode,
+;; triggered when the major mode is org-mode or is derived from org
+;; mode and point is anywhere other than at the end of a line.
;; When:
;; on an Org mode link - displays the link referent
;; on an Org mode heading - cycles through the available display
@@ -28,6 +28,20 @@
(require 'hbut)
(require 'org)
+(defun hsys-org-cycle ()
+ "Call org-cycle faking this- and last-command in order to cycle
+through all states"
+ (setq last-command 'org-cycle
+ this-command 'org-cycle)
+ (org-cycle))
+
+(defun hsys-org-global-cycle ()
+ "Call org-global-cycle faking this- and last-command in order
+to cycle through all states"
+ (setq last-command 'org-cycle
+ this-command 'org-cycle)
+ (org-global-cycle nil))
+
;;; ************************************************************************
;;; Public Button Types
;;; ************************************************************************
@@ -37,22 +51,22 @@
The variable, `browse-url-browser-function', customizes the url browser that
is used for urls. Valid values of this variable include
`browse-url-default-browser'
and `browse-url-generic'."
- (when (eq major-mode 'org-mode)
+ (when (derived-mode-p 'org-mode)
(cond ((org-link-at-p)
(hact 'org-link nil))
((org-at-heading-p)
- (hact 'org-cycle nil))
+ (hact 'hsys-org-cycle))
(t (hact 'org-meta-return)))))
(defun org-mode:help (&optional _but)
"If on an Org mode heading, cycles through views of the whole buffer outline.
If on an Org mode link, displays standard Hyperbole help."
- (when (eq major-mode 'org-mode)
+ (when (derived-mode-p 'org-mode)
(cond ((org-link-at-p)
(hkey-help current-prefix-arg)
t)
((org-at-heading-p)
- (org-global-cycle nil)
+ (hact 'hsys-org-global-cycle)
t))))
(defact org-link (link)
diff --git a/hui-jmenu.el b/hui-jmenu.el
index 981ab85..5ff0543 100644
--- a/hui-jmenu.el
+++ b/hui-jmenu.el
@@ -141,13 +141,12 @@
;;; ************************************************************************
(defun hui-menu-buffer-mode-name (buffer)
- (let ((mname (cdr (assq 'mode-name (buffer-local-variables buffer)))))
+ (let ((mname (buffer-local-value 'mode-name buffer)))
(if mname
;; Next line needed to ensure mode name is always formatted as
;; a string.
(format-mode-line mname)
- (capitalize (symbol-name
- (cdr (assq 'major-mode (buffer-local-variables buffer))))))))
+ (capitalize (symbol-name (buffer-local-value 'major-mode buffer))))))
(defun hui-menu-frame-name (frame)
"Return the name of FRAME."
diff --git a/hui-mini.el b/hui-mini.el
index e582117..8b76252 100644
--- a/hui-mini.el
+++ b/hui-mini.el
@@ -17,6 +17,7 @@
;;; ************************************************************************
(require 'hypb)
+(require 'hsettings) ;For hyperbole-web-search-alist
(require 'browse-url)
;;; ************************************************************************
@@ -366,7 +367,7 @@ constructs. If not given, the top-level Hyperbole menu is
used."
;;; ************************************************************************
;; Hyperbole menu mode is suitable only for specially formatted data.
-(put 'hui:menu-mode 'mode-class 'special)
+(put 'hui:menu-mode 'mode-class 'special) ;FIXME: Never used as a major mode!?
(defvar hui:menu-mode-map nil
"Keymap containing Hyperbole minibuffer menu commands.")
diff --git a/hui-mouse.el b/hui-mouse.el
index 4247a6c..2325c3c 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -244,7 +244,8 @@ Its default value is #'smart-scroll-down."
;; Python files - ensure this comes before Imenu for more advanced
;; definition lookups
((and (or (and (eq major-mode 'python-mode) buffer-file-name)
- (string-match "^Pydoc:\\|\\*?Python" (buffer-name)))
+ (let ((case-fold-search))
+ (string-match "\\`\\(Pydoc:\\|\\*?Python\\)" (buffer-name))))
(smart-python-at-tag-p)) .
((smart-python) . (smart-python nil 'next-tag)))
;;
diff --git a/hui-select.el b/hui-select.el
index 596bb25..b4bd52b 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -310,6 +310,19 @@ Also, add language-specific syntax setups to aid in thing
selection."
(setq sentence-end "\\([^
\t\n\r>]<\\|>\\(<[^>]*>\\)*\\|[.?!][]\"')}]*\\($\\| $\\|\t\\| \\)\\)[ \t\n]*")
(define-key web-mode-map "\C-c."
'hui-select-goto-matching-tag))))
+(defun hui-select-get-region-boundaries ()
+ "Return the (START . END) boundaries of region for `hui-select-thing'."
+ (or (hui-select-boundaries (point))
+ (when (eq hui-select-previous 'punctuation)
+ (hui-select-word (point)))))
+
+;;;###autoload
+(defun hui-select-get-region ()
+ "Return the region that `hui-select-thing' would select."
+ (let ((region-bounds (hui-select-get-region-boundaries)))
+ (when region-bounds
+ (buffer-substring-no-properties (car region-bounds) (cdr
region-bounds)))))
+
;;;###autoload
(defun hui-select-thing ()
"Select a region based on the syntax of the thing at point.
@@ -325,7 +338,7 @@ interactively, the type of selection is displayed in the
minibuffer."
;; Reset selection based on the syntax of character at point.
(hui-select-reset)
nil)))
- (let ((region (hui-select-boundaries (point))))
+ (let ((region (hui-select-get-region-boundaries)))
(unless region
(when (eq hui-select-previous 'punctuation)
(setq region (hui-select-word (point)))))
diff --git a/hui-treemacs.el b/hui-treemacs.el
index db1aee6..7994a7a 100644
--- a/hui-treemacs.el
+++ b/hui-treemacs.el
@@ -4,7 +4,7 @@
;;
;; Orig-Date: 19-Nov-17
;;
-;; Copyright (C) 2017 Free Software Foundation, Inc.
+;; Copyright (C) 2017-2018 Free Software Foundation, Inc.
;; See the "HY-COPY" file for license information.
;;
;; This file is part of GNU Hyperbole.
@@ -18,9 +18,9 @@
(eval-and-compile (require 'treemacs nil t))
-(eval-when (load)
- (unless (>= (string-to-number treemacs-version) 1.14)
- (error "(hui-treemacs): Hyperbole requires Treemacs package version 1.14
or greater")))
+(progn ()
+ (unless (>= (string-to-number treemacs-version) 2.0)
+ (error "(hui-treemacs): Hyperbole requires Treemacs package version 2.0 or
greater")))
;;; ************************************************************************
;;; smart-treemacs functions
@@ -51,10 +51,10 @@ If key is pressed:
(interactive)
(cond ((first-line-p)
(if (eolp)
- (treemacs-toggle)
+ (bury-buffer)
(hact 'link-to-directory default-directory)))
((and (last-line-p) (eolp))
- (treemacs-toggle))
+ (bury-buffer))
((eolp)
(funcall (if assist-flag assist-key-eol-function
action-key-eol-function)))
(t (let ((over-icon (and (treemacs-current-button)
@@ -65,7 +65,7 @@ If key is pressed:
(hact 'link-to-buffer-tmp (seq-elt result 0) (seq-elt
result 1))
;; (bufferp result)
(hact 'link-to-buffer-tmp result))
- (treemacs-push-button current-prefix-arg))))))
+ (treemacs-toggle-node current-prefix-arg))))))
;;;###autoload
(defun smart-treemacs-modeline ()
@@ -86,7 +86,7 @@ Suitable for use as a value of
`action-key-modeline-buffer-id-function'."
(treemacs-is-treemacs-window? action-key-depress-window)
(string-match " Treemacs " (format-mode-line mode-line-format)))
;; Quit/hide treemacs.
- (treemacs-toggle))
+ (bury-buffer))
;;
;; Treemacs is visible and displaying the same dir as
;; the default dir of the clicked on modeline.
@@ -95,7 +95,7 @@ Suitable for use as a value of
`action-key-modeline-buffer-id-function'."
(with-current-buffer (treemacs-buffer-exists?)
default-directory)))
;; Quit/hide treemacs.
- (treemacs-toggle))
+ (bury-buffer))
;;
;; Otherwise, invoke treemacs on the default dir of the clicked on
modeline.
(t (treemacs))))
diff --git a/hui-window.el b/hui-window.el
index 8858af0..b9a3e7d 100644
--- a/hui-window.el
+++ b/hui-window.el
@@ -250,7 +250,7 @@ drag release window.")
(defun hmouse-at-item-p ()
"Return t if point is on an item draggable by Hyperbole, otherwise nil."
(let* ((buf (and (window-live-p action-key-depress-window) (window-buffer
action-key-depress-window)))
- (mode (and buf (cdr (assq 'major-mode (buffer-local-variables buf))))))
+ (mode (and buf (buffer-local-value 'major-mode buf))))
(and buf (with-current-buffer buf
;; Point must be on an item, not after one
(not (looking-at "\\s-*$")))
diff --git a/hui.el b/hui.el
index d32ea3d..a0a9228 100644
--- a/hui.el
+++ b/hui.el
@@ -823,7 +823,7 @@ Optional NO-SORT means display in decreasing priority order
(natural order)."
(let ((file (buffer-file-name but-buf)))
(if file
(file-name-directory (hpath:symlink-referent file))
- (cdr (assq 'default-directory (buffer-local-variables but-buf)))))
+ (buffer-local-value 'default-directory but-buf)))
(hypb:error "(hui:key-dir): '%s' is not a valid buffer.")))
(defun hui:key-src (but-buf)
diff --git a/hypb.el b/hypb.el
index 8701d85..febe94b 100644
--- a/hypb.el
+++ b/hypb.el
@@ -4,7 +4,7 @@
;;
;; Orig-Date: 6-Oct-91 at 03:42:38
;;
-;; Copyright (C) 1991-2017 Free Software Foundation, Inc.
+;; Copyright (C) 1991-2019 Free Software Foundation, Inc.
;; See the "HY-COPY" file for license information.
;;
;; This file is part of GNU Hyperbole.
@@ -242,17 +242,6 @@ FILE is temporarily read into a buffer to determine the
major mode if necessary.
nil t)
nil t)))
-;;;###autoload
-(defun hypb:functionp (obj)
-"Returns t if OBJ is a function, nil otherwise."
- (cond
- ((symbolp obj) (fboundp obj))
- ((subrp obj))
- ((hypb:emacs-byte-code-p obj))
- ((consp obj)
- (if (eq (car obj) 'lambda) (listp (car (cdr obj)))))
- (t nil)))
-
(defun hypb:function-copy (func-symbol)
"Copies FUNC-SYMBOL's body for overloading. Returns copy of body."
(if (fboundp func-symbol)
@@ -512,7 +501,7 @@ NEWTEXT may instead be a function of one argument (the
string to replace in)
that returns a replacement string."
(unless (stringp str)
(error "(hypb:replace-match-string): 2nd arg must be a string: %s" str))
- (unless (or (stringp newtext) (hypb:functionp newtext))
+ (unless (or (stringp newtext) (functionp newtext))
(error "(hypb:replace-match-string): 3rd arg must be a string or function:
%s"
newtext))
(let ((rtn-str "")
@@ -526,7 +515,7 @@ that returns a replacement string."
(concat
rtn-str
(substring str prev-start match)
- (cond ((hypb:functionp newtext)
+ (cond ((functionp newtext)
(hypb:replace-match-string
regexp (substring str match start)
(funcall newtext str) literal))
diff --git a/hyperbole.el b/hyperbole.el
index 9931090..9ec3564 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -177,24 +177,6 @@ context (wherever point is). {C-u \\[hkey-help]} shows
what the Assist Key will
:type 'boolean
:group 'hyperbole-keys)
-(defcustom inhibit-hyperbole-messaging t
- "*Determines whether Hyperbole supports explicit buttons in mail and news
buffers.
-The default of t means disable such support (work remains to
-modernize these features). When t, Hyperbole will not alter
-messaging mode hooks nor overload functions from these packages,
-preventing potential incompatibilities.
-
-If you want to use Hyperbole buttons in mail and news buffers, set
-this variable to nil by adding (hyperbole-toggle-messaging t)
-to your personal Emacs initialization file, prior to loading
-Hyperbole, and then restart Emacs."
- :type 'boolean
- :initialize (lambda (symbol value) (set symbol value))
- :set (lambda (symbol value)
- (set symbol (not value))
- (hyperbole-toggle-messaging nil))
- :group 'hyperbole-buttons)
-
;;; ************************************************************************
;;; Public key bindings
;;; ************************************************************************
@@ -362,7 +344,8 @@ frame, those functions by default still return the prior
frame."
(if (consp frame-x-dot-y) (setcar frame-x-dot-y (selected-frame)))
frame-x-dot-y)))
-(require 'hmouse-key)
+;; hmouse-drv will load hui-mouse and hmouse-key
+(mapc #'require '(hsettings hmouse-drv hmouse-sh))
;;; ************************************************************************
;;; You shouldn't need to modify anything below here.
@@ -661,8 +644,6 @@ If FLAG is nil then text is shown, while if FLAG is t the
text is hidden."
;;; Load Site-specific Configurations and Initialize Hyperbole Package
;;; ************************************************************************
-(require 'hsettings)
-
(defun hyperb:init ()
"Standard configuration routine for Hyperbole."
(interactive)
diff --git a/hyrolo.el b/hyrolo.el
index b5fbb92..22d411a 100644
--- a/hyrolo.el
+++ b/hyrolo.el
@@ -694,7 +694,7 @@ If ARG is zero, move to the beginning of the current line."
(if (null arg) (setq arg 1))
(forward-visible-line arg))
-;; Derived from `sort-lines' in "sort.el" since through Emacs 25.0
+;; Derived from `sort-lines' in "sort.el" since through at least Emacs 25.0
;; invisible lines are not grouped with the prior visible line, making
;; rolo entry (or any record) sorts fail. This next function fixes that.
(defun hyrolo-sort-lines (reverse beg end)
diff --git a/kotl/kexport.el b/kotl/kexport.el
index 1e9dc09..cea41c6 100644
--- a/kotl/kexport.el
+++ b/kotl/kexport.el
@@ -88,10 +88,10 @@
;; make klinks into hyperlinks
(cons (concat "<address@hidden" kexport:kcell-reference-regexp
"[^&>]*>")
- "<A HREF=\"#\\1\">\\0</A>")
+ "<A HREF=\"#k\\1\">\\0</A>")
(cons (format "<address@hidden(%s\\)[^=&>]*>"
kexport:kcell-partial-reference-regexp)
- "<A HREF=\"#\\1\">\\0</A>")
+ "<A HREF=\"#k\\1\">\\0</A>")
(cons (format "<\\s-*\\([^ \t\n\r,<>]+\\)\\s-*,\\s-*%s[^=&>]*>"
kexport:kcell-reference-regexp)
'kexport:html-file-klink)
@@ -170,7 +170,7 @@ STILL TODO:
title)))
(princ "<HTML><HEAD>\n\n")
- (princ "<A ID=\"top\"></A><A ID=\"0\"></A>\n")
+ (princ "<A ID=\"top\"></A><A ID=\"k0\"></A>\n")
(princ (format "<TITLE>%s</TITLE>\n" title))
(if kexport:html-description
(princ (format "<META ID=\"description\" CONTENT=\"%s\">\n"
@@ -196,8 +196,8 @@ STILL TODO:
(setq i (1- i)))
(princ "<TABLE><TR>\n")
(setq label (kcell-view:label))
- (princ (format "<A ID=\"%s\"></A>" label))
- (princ (format "<A ID=\"%s\"></A>\n" (kcell-view:idstamp)))
+ (princ (format "<A ID=\"k%s\"></A>" label))
+ (princ (format "<A ID=\"k%s\"></A>\n" (kcell-view:idstamp)))
(princ "<TD WIDTH=2% VALIGN=top><PRE>\n")
(princ (format
"<FONT %s>%s%s</FONT></PRE></TD>\n"
@@ -236,8 +236,8 @@ Works exclusively within a call to
`hypb:replace-match-string'."
(match-end 1))))
(if (equal filename (file-name-nondirectory
kexport:input-filename))
- "<A HREF=\"#\\2\">\\0</A>"
- (format "<A HREF=\"file://%s#\\2\">\\0</A>"
+ "<A HREF=\"#k\\2\">\\0</A>"
+ (format "<A HREF=\"file://%s#k\\2\">\\0</A>"
(expand-file-name filename
(if kexport:input-filename
(file-name-directory
diff --git a/kotl/kfill.el b/kotl/kfill.el
index f26ece6..d1be8ea 100644
--- a/kotl/kfill.el
+++ b/kotl/kfill.el
@@ -95,7 +95,7 @@ number of lines that could not be moved, otherwise 0."
(forward-visible-line n)
(if (< n 0)
nil
- (skip-chars-forward "[\n\r]"))
+ (skip-chars-forward "\n\r"))
; (- (abs n) (count-matches "\n" opoint (point)))
0))
@@ -227,6 +227,7 @@ fill prefix at the beginning of each line."
(fill-region-as-paragraph from (point) justify-flag)))))
(defun kfill:funcall (function &rest args)
+ "Call the original FUNCTION with rest of ARGS that kfill overloaded."
(apply (cdr (assq function kfill:function-table)) args))
(defun kfill:hanging-list (paragraph)
diff --git a/kotl/kotl-mode.el b/kotl/kotl-mode.el
index eff51b8..503b163 100644
--- a/kotl/kotl-mode.el
+++ b/kotl/kotl-mode.el
@@ -1967,7 +1967,7 @@ If key is pressed:
otherwise hide it;
(3) between cells or within the read-only indentation region to the left of
a cell, then move point to prior location and begin creation of a
- klink to some other outline cell; hit the Action Key twice to select the
+ klink to some other outline cell; press the Action Key twice to select the
link referent cell;
(4) anywhere else, invoke `action-key-eol-function', typically to scroll up
a windowful."
@@ -2002,7 +2002,7 @@ If assist-key is pressed:
each cell in tree beginning at point;
(3) between cells or within the read-only indentation region to the left of
a cell, then move point to prior location and prompt to move one tree to
- a new location in the outline; hit the Action Key twice to select the
+ a new location in the outline; press the Action Key twice to select the
tree to move and where to move it;
(4) anywhere else, invoke `assist-key-eol-function', typically to scroll down
a windowful."
diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf
index 314f65f..ac66dff 100644
Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index c699a03..4a6aa37 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -1517,7 +1517,7 @@ windows, instead use the @bkbd{M-o t
<id-of-window-to-display-item-in>} key sequ
@c normally under Hyperbole.
@c The code for Smart Key modifiers can be found in
address@hidden @address@hidden@{hyperb:address@hidden/hmouse-mod.el}.
address@hidden @address@hidden:address@hidden/hmouse-mod.el}.
@node Buttons, Menus, Smart Keys, Top
@@ -7882,7 +7882,7 @@ When in a Treemacs file browser buffer:
(3) at the end of an entry line: invoke @code{action-key-eol-function},
typically to scroll up proportionally, if an Action Key press; invoke
@code{assist-key-eol-function}, typically to scroll down
proportionally,
- if an Asisst Key press;
+ if an Assist Key press;
(4) on the first line of the buffer (other than the end of line),
dired is run on the current directory of this Treemacs;
(5) at the end of the first or last line of the buffer,
diff --git a/man/im/C-hh.png b/man/im/C-hh.png
index c6e5bb3..10dde2e 100644
Binary files a/man/im/C-hh.png and b/man/im/C-hh.png differ
- [elpa] scratch/hyperbole-merge-7.0.2b c0bd503 05/23: Rebuild doc when doc sources have changed, (continued)
- [elpa] scratch/hyperbole-merge-7.0.2b c0bd503 05/23: Rebuild doc when doc sources have changed, Stefan Monnier, 2019/02/05
- [elpa] scratch/hyperbole-merge-7.0.2b 5892083 09/23: Use new treemacs 1.18 function treemacs-toggle-node, Stefan Monnier, 2019/02/05
- [elpa] scratch/hyperbole-merge-7.0.2b 450489e 13/23: Adjust tramp-file-name-regexp to work with looking-at, Stefan Monnier, 2019/02/05
- [elpa] scratch/hyperbole-merge-7.0.2b 2e878cb 16/23: Initial commit of Windows path handling, Stefan Monnier, 2019/02/05
- [elpa] scratch/hyperbole-merge-7.0.2b d729726 21/23: Merge branch 'master' of github.com:rswgnu/hyperbole, Stefan Monnier, 2019/02/05
- [elpa] scratch/hyperbole-merge-7.0.2b 66106d3 08/23: Fixed issue with inhibit-hyperbole-messaging not be set properly, Stefan Monnier, 2019/02/05
- [elpa] scratch/hyperbole-merge-7.0.2b afe3db8 06/23: Added 'k' to klink ids exported to html;, Stefan Monnier, 2019/02/05
- [elpa] scratch/hyperbole-merge-7.0.2b 09e646e 17/23: Add implicit path button support for MSWindows paths, Stefan Monnier, 2019/02/05
- [elpa] scratch/hyperbole-merge-7.0.2b b02bf71 19/23: Merge branch 'master' of git.sv.gnu.org:/srv/git/hyperbole with changes, Stefan Monnier, 2019/02/05
- [elpa] scratch/hyperbole-merge-7.0.2b 6139ba6 20/23: Set theme jekyll-theme-cayman, Stefan Monnier, 2019/02/05
- [elpa] scratch/hyperbole-merge-7.0.2b bda4f2d 15/23: Merge remote-tracking branch 'hyperbole/master' into externals/hyperbole,
Stefan Monnier <=
- [elpa] scratch/hyperbole-merge-7.0.2b f3d59c4 18/23: Large set of BW changes for V7.0.2b pre-release., Stefan Monnier, 2019/02/05
- [elpa] scratch/hyperbole-merge-7.0.2b c75213b 23/23: Merge remote-tracking branch 'hyperbole/master' into externals/hyperbole, Stefan Monnier, 2019/02/05
- [elpa] scratch/hyperbole-merge-7.0.2b 29b1b76 14/23: Merge tag 'hyperbole-7.0.2a' into externals/hyperbole, Stefan Monnier, 2019/02/05