[elpa] externals/pyim 1f32674: * tests/pyim-tests.el (pyim-tests-pyim-dcache-export): New test.
branch: externals/pyim commit 1f326742a926efa613038aef017c9fefe11ebfee Author: Feng Shu Commit: Feng Shu * tests/pyim-tests.el (pyim-tests-pyim-dcache-export): New test. --- tests/pyim-tests.el | 23 +++ 1 file changed, 23 insertions(+) diff --git a/tests/pyim-tests.el b/tests/pyim-tests.el index dc0c8b0..2d332ac 100644 --- a/tests/pyim-tests.el +++ b/tests/pyim-tests.el @@ -646,6 +646,29 @@ (pyim-dcache-init-variable my/test:1) (should (equal my/test:1 "hello" +(ert-deftest pyim-tests-pyim-dcache-export () + (let ((pyim-dhashcache-iword2count (make-hash-table :test #'equal)) +(pyim-dhashcache-icode2word (make-hash-table :test #'equal)) +(file (make-temp-file "pyim-dcache-export-"))) +(puthash "你好" 10 pyim-dhashcache-iword2count) +(puthash "尼耗" 1 pyim-dhashcache-iword2count) +(puthash "ni-hao" (list "你好" "尼耗") pyim-dhashcache-icode2word) +(pyim-dcache-export-words-and-counts file) +(with-temp-buffer + (insert-file-contents file) + (should (equal (buffer-string) + ";;; -*- coding: utf-8-unix -*- +你好 10 +尼耗 1 +"))) +(pyim-dcache-export-personal-words file) +(with-temp-buffer + (insert-file-contents file) + (should (equal (buffer-string) + ";;; -*- coding: utf-8-unix -*- +ni-hao 你好 尼耗 +") + ;; ** pyim-dhashcache 相关单元测试 (ert-deftest pyim-tests-pyim-dhashcache-get-shortcodes () (should (equal (pyim-dhashcache-get-shortcodes ".abcde") nil))
[nongnu] elpa/go-mode updated (5bd8efa -> c3c0c14)
elpasync pushed a change to branch elpa/go-mode. from 5bd8efa godoc-gogetdoc works with modules new b212a73 Replace our fill-paragraph code with a modified copy from rust-mode new c3c0c14 Remove support for gb, wgo and Godeps Summary of changes: go-mode.el | 314 + test/go-fill-paragraph-test.el | 22 +-- 2 files changed, 162 insertions(+), 174 deletions(-)
[nongnu] elpa/go-mode c3c0c14 2/2: Remove support for gb, wgo and Godeps
branch: elpa/go-mode commit c3c0c14374a322d98de7406cb0e365b92deb4a19 Author: Dominik Honnef Commit: Dominik Honnef Remove support for gb, wgo and Godeps Closes gh-391 --- go-mode.el | 63 +++--- 1 file changed, 3 insertions(+), 60 deletions(-) diff --git a/go-mode.el b/go-mode.el index 11c5bef..f1a5e0b 100644 --- a/go-mode.el +++ b/go-mode.el @@ -203,18 +203,13 @@ the Go build cache or Go modules." :package-version '(go-mode . 1.4.0) :group 'go) -(defcustom go-guess-gopath-functions (list #'go-godep-gopath - #'go-wgo-gopath - #'go-gb-gopath - #'go-plain-gopath) +(defcustom go-guess-gopath-functions (list #'go-plain-gopath) "Functions to call in sequence to detect a project's GOPATH. The functions in this list will be called one after another, until a function returns non-nil. The order of the functions in this list is important, as some project layouts may superficially -look like others. For example, a subset of wgo projects look like -gb projects. That's why we need to detect wgo first, to avoid -mis-identifying them as gb projects." +look like others." :type '(repeat function) :group 'go) @@ -2785,10 +2780,7 @@ returned." (looking-at "\\
[nongnu] elpa/go-mode b212a73 1/2: Replace our fill-paragraph code with a modified copy from rust-mode
branch: elpa/go-mode commit b212a73c21a8b806f9764004397c1d03eb0b2e10 Author: Dominik Honnef Commit: Dominik Honnef Replace our fill-paragraph code with a modified copy from rust-mode With no offense to the author of the original code, the copy from rust-mode, after some slight modifications, works more reliably than what we had before and is (somewhat) easier to understand. fill-region no longer locks up, and multi-line strings can be reformatted somewhat (because we no longer prevent formatting of non-comments). In the future we may want to improve upon this to handle strings specially, and prevent reflowing code, much like cc-mode does. Closes gh-390 Updates gh-386 --- go-mode.el | 251 + test/go-fill-paragraph-test.el | 22 +--- 2 files changed, 159 insertions(+), 114 deletions(-) diff --git a/go-mode.el b/go-mode.el index 21d01ff..11c5bef 100644 --- a/go-mode.el +++ b/go-mode.el @@ -762,97 +762,6 @@ case keyword. It returns nil for the case line itself." (replace-regexp-in-string "/\\*" " " (match-string-no-properties 0)) -(defun go--fill-paragraph (&rest args) - "Wrap fill-paragraph to set custom fill-prefix." - (let ((fill-prefix (go--fill-prefix)) -(fill-paragraph-function nil)) -(apply 'fill-paragraph args))) - -(defun go--empty-line-p () - (looking-at "[[:space:]]*$")) - -(defun go--boring-comment-p () - "Return non-nil if we are looking at a boring comment. - -A boring comment is a comment with no content. For example: - - ; boring -// hello - ; boring - -/*; boring - hello -*/; boring -" - (or - (looking-at-p "[[:space:]]*//+[[:space:]]*$") - (looking-at-p "[[:space:]]*\\(?:/\\*+\\|\\*/+\\)[[:space:]]*$"))) - -(defun go--interesting-comment-p () - "Return non-nil if we are looking at an interesting comment. - -An interesting comment is one that contains content other than -comment starter/closer characters." - - (if (go-in-comment-p) - (and - (not (go--empty-line-p)) - (not (looking-at-p "[[:space:]]*\\*/"))) -(and - (looking-at go--comment-start-regexp) - (not (go--boring-comment-p) - -(defun go--fill-forward-paragraph (&optional arg) - "forward-paragraph like function used for fill-paragraph. - -This function is key for making fill-paragraph do the right -thing for comments." - (beginning-of-line) - (let* ((arg (or arg 1)) - (single (if (> arg 0) 1 -1)) - (done nil)) -(while (and (not done) (not (zerop arg))) - ;; If we are moving backwards and aren't currently looking at a - ;; comment, move back one line. This is to make sure - ;; (go--fill-forward-paragraph -1) always works properly as the - ;; inverse of (go--fill-forward-paragraph 1). - (when (and - (= single -1) - (not (go-in-comment-p)) - (not (looking-at-p go--comment-start-regexp))) -(forward-line -1)) - - ;; Skip empty lines and comment lines with no content. - (while (and - (or (go--empty-line-p) (go--boring-comment-p)) - (zerop (forward-line single - - (let (saw-comment) -;; Skip comment lines that have content. -(while (and -(go--interesting-comment-p) -(zerop (forward-line single))) - (setq saw-comment t)) - -(if (not saw-comment) -(progn - ;; In fill-region case user may have selected a region - ;; with non-comments. fill-region will loop forever - ;; until it makes it to the end of the region, so just - ;; fall back to `forward-paragraph' so we make progress. - (when mark-active -(setq arg (forward-paragraph arg))) - (setq done t)) - ;; If we are going backwards, move forward one line so we - ;; are on the first interesting line of the comment. Note - ;; that the current line may already be interesting if we - ;; are at the beginning of the buffer. - (when (and (= single -1) (not (go--interesting-comment-p))) -(forward-line 1)) - (cl-decf arg single -arg)) - - (defun go--open-paren-position () "Return non-nil if point is between '(' and ')'. @@ -879,6 +788,10 @@ The return value is the position of the opening paren." (go--multiline-comment-indent) (go--indentation-at-point +;; It's unfortunate that the user cannot reindent the current line to +;; align with the previous line; however, if they could, then people +;; who use reindent-then-newline-and-indent wouldn't be able to +;; explicitly indent lines inside comments. (defun go--multiline-comment-indent () "Return the appropriate indent inside multiline comment. @@ -1901,10 +1814,25 @@ with goflymake (s
[nongnu] elpa/go-mode updated (c3c0c14 -> 32cbd78)
elpasync pushed a change to branch elpa/go-mode. from c3c0c14 Remove support for gb, wgo and Godeps new 5dd0353 XRef is no longer optional new 32cbd78 Remove polyfills for functions from Emacs 26 Summary of changes: go-mode.el | 51 +-- 1 file changed, 13 insertions(+), 38 deletions(-)
[nongnu] elpa/go-mode 32cbd78 2/2: Remove polyfills for functions from Emacs 26
branch: elpa/go-mode commit 32cbd78c0af29837ace3db04a224d6d01ec6851e Author: Dominik Honnef Commit: Dominik Honnef Remove polyfills for functions from Emacs 26 Updates gh-394 --- go-mode.el | 31 --- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/go-mode.el b/go-mode.el index 349c6bc..1a85492 100644 --- a/go-mode.el +++ b/go-mode.el @@ -1926,7 +1926,7 @@ with goflymake (see URL `https://github.com/dougm/goflymake'), gocode The tool used can be set via ‘gofmt-command’ (default: gofmt) and additional arguments can be set as a list via ‘gofmt-args’." (interactive) - (let ((tmpfile (go--make-nearby-temp-file "gofmt" nil ".go")) + (let ((tmpfile (make-nearby-temp-file "gofmt" nil ".go")) (patchbuf (get-buffer-create "*Gofmt patch*")) (errbuf (if gofmt-show-errors (get-buffer-create "*Gofmt Errors*"))) (coding-system-for-read 'utf-8) @@ -1952,11 +1952,11 @@ arguments can be set as a list via ‘gofmt-args’." ;; accepting a full path, and some features ;; of goimports rely on knowing the full ;; name. - (list "-srcdir" (go--file-local-name + (list "-srcdir" (file-local-name (file-truename buffer-file-name)) (setq our-gofmt-args (append our-gofmt-args gofmt-args -(list "-w" (go--file-local-name tmpfile +(list "-w" (file-local-name tmpfile (message "Calling gofmt: %s %s" gofmt-command our-gofmt-args) ;; We're using errbuf for the mixed stdout and stderr output. This ;; is not an issue because gofmt -w does not produce any stdout @@ -2000,7 +2000,7 @@ arguments can be set as a list via ‘gofmt-args’." (concat (file-name-directory filename) (file-name-nondirectory tmpfile)) tmpfile))) (while (search-forward-regexp -(concat "^\\(" (regexp-quote (go--file-local-name truefile)) +(concat "^\\(" (regexp-quote (file-local-name truefile)) "\\):") nil t) (replace-match (file-name-nondirectory filename) t t nil 1))) @@ -2906,29 +2906,6 @@ If BUFFER, return the number of characters in that buffer instead." ;;;###autoload (add-to-list 'auto-mode-alist '("go\\.mod\\'" . go-dot-mod-mode)) -;; Polyfills for functions added in Emacs 26. Remove these once we don’t -;; support Emacs 25 any more. -(defalias 'go--file-local-name - (if (fboundp 'file-local-name) #'file-local-name -(lambda (file) (or (file-remote-p file 'localname) file - -(defalias 'go--make-nearby-temp-file - (if (fboundp 'make-nearby-temp-file) #'make-nearby-temp-file -(lambda (prefix &optional dir-flag suffix) - (let ((temporary-file-directory (go--temporary-file-directory))) -(make-temp-file prefix dir-flag suffix) - -(defalias 'go--temporary-file-directory - (if (fboundp 'temporary-file-directory) #'temporary-file-directory -(lambda () - (let ((remote (file-remote-p default-directory))) -(if remote -;; Assume that /tmp is a temporary directory on the remote host. -;; This won’t work on Windows. -(concat remote "/tmp") - temporary-file-directory) - - ;; The following functions were copied (and modified) from rust-mode.el. ;; ;; Copyright (c) 2015 The Rust Project Developers
[nongnu] elpa/go-mode 5dd0353 1/2: XRef is no longer optional
branch: elpa/go-mode commit 5dd0353fabad4d8f1245288ababd8d634e78259a Author: Dominik Honnef Commit: Dominik Honnef XRef is no longer optional Updates gh-394 --- go-mode.el | 20 +--- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/go-mode.el b/go-mode.el index f1a5e0b..349c6bc 100644 --- a/go-mode.el +++ b/go-mode.el @@ -22,7 +22,7 @@ (require 'find-file) (require 'ring) (require 'url) -(require 'xref nil :noerror) ; xref is new in Emacs 25.1 +(require 'xref) (eval-when-compile @@ -2406,16 +2406,14 @@ description at POINT." "Jump to the definition of the expression at POINT." (interactive "d") (condition-case nil - (let ((file (car (godef--call point -(if (not (godef--successful-p file)) -(message "%s" (godef--error file)) - (push-mark) - (if (eval-when-compile (fboundp 'xref-push-marker-stack)) - ;; TODO: Integrate this facility with XRef. - (xref-push-marker-stack) -(ring-insert find-tag-marker-ring (point-marker))) - (godef--find-file-line-column file other-window))) -(file-error (message "Could not run godef binary" + (let ((file (car (godef--call point + (if (not (godef--successful-p file)) + (message "%s" (godef--error file)) + (push-mark) + ;; TODO: Integrate this facility with XRef. + (xref-push-marker-stack) + (godef--find-file-line-column file other-window))) + (file-error (message "Could not run godef binary" (defun godef-jump-other-window (point) (interactive "d")
[elpa] externals/csv-mode 698d806: Fill `csv-align-padding' docstring
branch: externals/csv-mode commit 698d806f230d267f4a77cc2d873a36aa18e7e949 Author: Simen Heggestøyl Commit: Simen Heggestøyl Fill `csv-align-padding' docstring * csv-mode.el (csv-align-padding): Fill docstring to silence warning. --- csv-mode.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/csv-mode.el b/csv-mode.el index e47983a..5e29a9b 100644 --- a/csv-mode.el +++ b/csv-mode.el @@ -238,7 +238,8 @@ Auto-alignment means left align text and right align numbers." (defcustom csv-align-padding 1 "Aligned field spacing: must be a positive integer. -Number of spaces used by `csv-align-mode' and `csv-align-fields' after separators." +Number of spaces used by `csv-align-mode' and `csv-align-fields' +after separators." :type 'integer) (defcustom csv-header-lines 0
[nongnu] elpa/org-contrib 9dc8f49: Don’t assume Emacs internal timestamp format
branch: elpa/org-contrib commit 9dc8f4914888b904a7edceae6deda5329777ae94 Author: Paul Eggert Commit: Paul Eggert Don’t assume Emacs internal timestamp format This format is documented to change in some future Emacs version. * lisp/ox-groff.el (org-groff--time-sec): New function. (org-groff-compile): Use it. --- lisp/ox-groff.el | 21 ++--- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/lisp/ox-groff.el b/lisp/ox-groff.el index 5c18085..3e376f1 100644 --- a/lisp/ox-groff.el +++ b/lisp/ox-groff.el @@ -647,16 +647,16 @@ See `org-groff-text-markup-alist' for details." ;; If FROM then get data from FROM -(if from-data +(if from-data (setq from-data (replace-regexp-in-string "\\.P\n" "" from-data)) (setq from-data "")) - -(if to-data + +(if to-data (setq to-data (replace-regexp-in-string "\\.P\n" "" to-data)) (setq from-data "")) - + (concat (cond (from-data @@ -1879,6 +1879,12 @@ Return PDF file's name." async subtreep visible-only body-only ext-plist (lambda (file) (org-groff-compile file) +;; Port to Emacs 26 and earlier. +(defun org-groff--time-sec (time) + (if (fboundp 'time-convert) + (time-convert time 'integer) +(cl-subseq (or time (current-time)) 0 2))) + (defun org-groff-compile (file) "Compile a Groff file. @@ -1889,7 +1895,7 @@ Return PDF file name or an error if it couldn't be produced." (let* ((base-name (file-name-sans-extension (file-name-nondirectory file))) (full-name (file-truename file)) (out-dir (file-name-directory file)) -(time (current-time)) +(time (org-groff--time-sec nil)) ;; Properly set working directory for compilation. (default-directory (if (file-name-absolute-p file) (file-name-directory full-name) @@ -1928,8 +1934,9 @@ Return PDF file name or an error if it couldn't be produced." ;; Only compare times up to whole seconds as some ;; filesystems (e.g. HFS+) do not retain any finer ;; granularity. - (time-less-p (cl-subseq (nth 5 (file-attributes pdffile)) 0 2) -(cl-subseq time 0 2))) + (time-less-p (org-groff--time-sec + (nth 5 (file-attributes pdffile))) +time)) (error (concat (format "PDF file %s wasn't produced" pdffile) (when errors (concat ": " errors ;; Else remove log files, when specified, and signal end of
[nongnu] elpa/slime 1923227: Simplify message timestamp formatting
branch: elpa/slime commit 1923227f542dab0c87a13aaf108ec29e06bf6841 Author: Paul Eggert Commit: Paul Eggert Simplify message timestamp formatting * slime-tests.el (slime-wait-condition): Use format-time-string rather than formatting by hand. This avoids relying on Emacs timestamp format, which is slated to change. --- slime-tests.el | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/slime-tests.el b/slime-tests.el index b122119..8567b45 100644 --- a/slime-tests.el +++ b/slime-tests.el @@ -200,9 +200,8 @@ conditions (assertions)." (defun slime-wait-condition (name predicate timeout) (let ((end (time-add (current-time) (seconds-to-time timeout (while (not (funcall predicate)) - (let ((now (current-time))) -(message "waiting for condition: %s [%s.%06d]" name - (format-time-string "%H:%M:%S" now) (cl-third now))) + (message "waiting for condition: %s [%s]" name + (format-time-string "%H:%M:%S.%6N")) (cond ((time-less-p end (current-time)) (error "Timeout waiting for condition: %S" name)) (t
[nongnu] elpa/sly 9300e46: Simplify message timestamp formatting
branch: elpa/sly commit 9300e466cb29257f6d3e0422384477038ad7011f Author: Paul Eggert Commit: Paul Eggert Simplify message timestamp formatting * lib/sly-tests.el (sly-wait-condition): Use format-time-string rather than formatting by hand. This avoids relying on Emacs timestamp format, which is slated to change. --- lib/sly-tests.el | 11 +-- 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/sly-tests.el b/lib/sly-tests.el index af381e9..44f50a5 100644 --- a/lib/sly-tests.el +++ b/lib/sly-tests.el @@ -95,7 +95,7 @@ Exits Emacs when finished. The exit code is the number of failed tests." (string-match "test/sly-\\(.*\\)\.elc?$" file-name)) (list 'contrib (intern (match-string 1 file-name))) '(core) - + (defmacro define-sly-ert-test (name &rest args) "Like `ert-deftest', but set tags automatically. Also don't error if `ert.el' is missing." @@ -209,9 +209,8 @@ conditions (assertions)." (defun sly-wait-condition (name predicate timeout &optional cleanup) (let ((end (time-add (current-time) (seconds-to-time timeout (while (not (funcall predicate)) - (let ((now (current-time))) -(sly-message "waiting for condition: %s [%s.%06d]" name - (format-time-string "%H:%M:%S" now) (cl-third now))) + (sly-message "waiting for condition: %s [%s]" name + (format-time-string "%H:%M:%S.%6N")) (cond ((time-less-p end (current-time)) (unwind-protect (error "Timeout waiting for condition: %S" name) @@ -1314,7 +1313,7 @@ Reconnect afterwards." (with-current-buffer mrepl-buffer ;; FIXME: suboptimal: wait one second for the lisp ;; to reply. -(sit-for 1) +(sit-for 1) (unless (and (string-match "^; +SLY" (buffer-string)) (string-match "CL-USER> *$" (buffer-string))) (die (format "MREPL prompt: %s" (buffer-string @@ -1447,7 +1446,7 @@ Reconnect afterwards." (sly-test--eval-now "(.fn3.)")) '("nil" "nil"))) ;; Recompile now - ;; + ;; (with-current-buffer xref-buffer (sly-recompile-all-xrefs) (sly-wait-condition "Compilation finished"
[nongnu] elpa/projectile ac60885: Port projectile-time-seconds to future Emacs
branch: elpa/projectile commit ac60885f2ab562de532a909619351930f852e66c Author: Paul Eggert Commit: Paul Eggert Port projectile-time-seconds to future Emacs Don’t assume internal format of Emacs timestamps. They are documented to change in a future version. This patch works on older Emacs versions; it can be simplified to just use time-convert if we assume Emacs 27 or later. --- projectile.el | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/projectile.el b/projectile.el index 488df28..e67f56d 100644 --- a/projectile.el +++ b/projectile.el @@ -955,8 +955,10 @@ to invalidate." (defun projectile-time-seconds () "Return the number of seconds since the unix epoch." - (cl-destructuring-bind (high low _usec _psec) (current-time) -(+ (lsh high 16) low))) + (if (fboundp 'time-convert) + (time-convert nil 'integer) +(cl-destructuring-bind (high low _usec _psec) (current-time) + (+ (lsh high 16) low (defun projectile-cache-project (project files) "Cache PROJECTs FILES.
[elpa] externals/csv-mode 4ae5096: * csv-mode.el (csv-end-of-field): Expand comment
branch: externals/csv-mode commit 4ae5096ed1be35928a8361ed6ed35463697dfc65 Author: Stefan Monnier Commit: Stefan Monnier * csv-mode.el (csv-end-of-field): Expand comment --- csv-mode.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/csv-mode.el b/csv-mode.el index 5e29a9b..7b9c915 100644 --- a/csv-mode.el +++ b/csv-mode.el @@ -674,8 +674,9 @@ point or marker arguments, BEG and END, delimiting the region." (while (not ended) (cond ((not (eq (char-syntax (following-char)) ?\")) (forward-char 1)) - ;; Quotes inside quoted strings are quoted by doubling - ;; the quote char: a,"b""c,",d + ;; According to RFC-4180 (sec 2.7), quotes inside quoted strings + ;; are quoted by doubling the quote char: a,"b""c,",d + ;; FIXME: Maybe we should handle this via syntax-propertize? ((eq (char-syntax (char-after (1+ (point ?\") (forward-char 2)) (t
[nongnu] elpa/caml 353edf8: Port caml-types-time to future Emacs
branch: elpa/caml commit 353edf8e0d59f025f1da00da34266a4e4642c21f Author: Paul Eggert Commit: Paul Eggert Port caml-types-time to future Emacs * caml-types.el (caml-types-time): Do not assume Emacs timestamp format, which is slated to change in future versions. Instead, use time-convert to convert to milliseconds since the epoch modulo 100. This is simpler and less glitchy than the old version anyway (millseconds since the epoch modulo 1000, plus 1000 times seconds since the epoch modulo 65536 modulo 1000). This code uses fboundp to be portable to Emacs 26 and earlier, and can be simplified once we can assume Emacs 27. --- caml-types.el | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/caml-types.el b/caml-types.el index c7c91a0..c03a72c 100644 --- a/caml-types.el +++ b/caml-types.el @@ -595,9 +595,11 @@ corresponding .annot file." nil) (defun caml-types-time () - (let ((time (current-time))) + (if (fboundp 'time-convert) + (mod (car (time-convert nil 1000)) 100) +(let ((time (current-time))) (+ (* (mod (cadr time) 1000) 1000) - (/ (cadr (cdr time)) 1000 + (/ (cadr (cdr time)) 1000) (defun caml--release-event-p (original event) (and (equal (event-basic-type original) (event-basic-type event))
[nongnu] elpa/proof-general 07755c5: Port pg-pgip-id to future Emacs
branch: elpa/proof-general commit 07755c54ac86df0c9e8bc915dfa12ef72b23e13a Author: Paul Eggert Commit: Paul Eggert Port pg-pgip-id to future Emacs * generic/pg-pgip.el (pg-pgip-id): Do not assume a particular form for Emacs Lisp timestamps, as that is slated to change in a future Emacs version. Instead, use time-convert when available (since Emacs 27) to generate the desired form. --- generic/pg-pgip.el | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/generic/pg-pgip.el b/generic/pg-pgip.el index fbcb444..0954b50 100644 --- a/generic/pg-pgip.el +++ b/generic/pg-pgip.el @@ -281,7 +281,7 @@ Return a symbol representing the PGIP command processed, or nil." ;; TODO: display and cache the value in a dedicated buffer ;; FIXME: should idvalue have a context? (pg-response-message text))) - + ;; ;; Menu configuration [TODO] ;; @@ -583,7 +583,10 @@ See `pg-pgip-assemble-packet' " (defconst pg-pgip-id ;; Identifier based on hostname, user, time, and (FIXME: possible?) ppid (concat (getenv "HOSTNAME") "/" (getenv "USER") "/" - (let ((tm (current-time))) (format "%d.%d" (car tm) (cadr tm + (let ((tm (if (fboundp 'time-convert) + (time-convert nil 'list) + (current-time + (format "%d.%d" (car tm) (cadr tm "PGIP Identifier for this Emacs Proof General component.") (defvar pg-pgip-refseq nil
[elpa] externals/pyim updated (1f32674 -> ec8bbd9)
elpasync pushed a change to branch externals/pyim. from 1f32674 * tests/pyim-tests.el (pyim-tests-pyim-dcache-export): New test. new 3923204 Add pyim-process-async-delay. new ec8bbd9 * tests/pyim-tests.el (pyim-tests-pyim-cregexp): add wubi test: ' Summary of changes: pyim-process.el | 8 +++- tests/pyim-tests.el | 6 +- 2 files changed, 12 insertions(+), 2 deletions(-)
[elpa] externals/pyim ec8bbd9 2/2: * tests/pyim-tests.el (pyim-tests-pyim-cregexp): add wubi test: aaaa'aaaa
branch: externals/pyim commit ec8bbd9265c0d407dcaf5a4305188fc7e6ff3a09 Author: Feng Shu Commit: Feng Shu * tests/pyim-tests.el (pyim-tests-pyim-cregexp): add wubi test: ' --- tests/pyim-tests.el | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/pyim-tests.el b/tests/pyim-tests.el index 2d332ac..03acd9f 100644 --- a/tests/pyim-tests.el +++ b/tests/pyim-tests.el @@ -582,7 +582,11 @@ (puthash "wubi/" (list "工" "恭恭敬敬") pyim-dhashcache-code2word) (puthash "wubi/adww" (list "欺" "蒙古人" "其人" "欺人" "斯人" "惹人" "匧" "歁" "莢") pyim-dhashcache-code2word) (should (equal (pyim-cregexp-build "") "\\(?:\\|[工恭]恭?敬?敬?\\)")) -(should (equal (pyim-cregexp-build "adww") "\\(?:adww\\|[其匧惹斯欺歁莢蒙][人古]?人?\\)" +(should (equal (pyim-cregexp-build "adww") "\\(?:adww\\|[其匧惹斯欺歁莢蒙][人古]?人?\\)")) +(should (equal (pyim-cregexp-build "'") + "\\(?:\\(?:'\\|\\|[工恭]恭?敬?敬?\\)\\(?:\\|[工恭]恭?敬?敬?\\)\\)")) +(should (equal (pyim-cregexp-build-1 "'") + "\\(?:'\\|\\|[工恭][恭]?[敬]?[敬]?\\)\\(?:\\|[工恭][恭]?[敬]?[敬]?\\)" ;; ** pyim-import 相关单元测试 (ert-deftest pyim-tests-pyim-import-words-and-counts ()
[elpa] externals/pyim 3923204 1/2: Add pyim-process-async-delay.
branch: externals/pyim commit 3923204a062ff334f83f59b0f9637952c1842aa5 Author: Feng Shu Commit: Feng Shu Add pyim-process-async-delay. * pyim-process.el (pyim-process-async-delay): New defcustom. (pyim-process-run-1): Use pyim-process-async-delay. --- pyim-process.el | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pyim-process.el b/pyim-process.el index f59422c..ee68c65 100644 --- a/pyim-process.el +++ b/pyim-process.el @@ -71,6 +71,10 @@ 如果为 0 或者 nil, 则不等待立刻显示可选词." :type 'integer) +(defcustom pyim-process-async-delay 0.3 + "延迟多少秒开始异步获取词条。" + :type 'integer) + (defvar pyim-process-input-ascii nil "是否开启 pyim 英文输入模式.") @@ -252,7 +256,9 @@ ;; 注意事项:异步流程对 page tooltip 有要求, 有些 page tooltip 是无法支持异 ;; 步流程的。 (setq pyim-process-run-async-timer - (run-with-timer 1 nil #'pyim-process-run-async)) + (run-with-timer + pyim-process-async-delay + nil #'pyim-process-run-async)) ;; 自动上屏功能 (let ((autoselector-results (mapcar (lambda (x)
[elpa] externals/org cfe4b17 2/9: org-element-cache: Optimise changed property drawer detection
branch: externals/org commit cfe4b17d968791e3e39a1d48fd0002d87952deb6 Author: Ihor Radchenko Commit: Ihor Radchenko org-element-cache: Optimise changed property drawer detection * lisp/org-element.el (org-element--cache-for-removal): Only force re-parsing headlines when the changed region falls within the headline before property drawer end position. --- lisp/org-element.el | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lisp/org-element.el b/lisp/org-element.el index 13e3ceb..c7418f9 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -6674,9 +6674,11 @@ known element in cache (it may start after END)." (goto-char (point-min)) (while (and (org-at-comment-p) (bolp)) (forward-line)) ;; Should not see property -;; drawer inside robust +;; drawer within changed ;; region. -(not (looking-at org-property-drawer-re) +(save-match-data + (or (not (looking-at org-property-drawer-re)) + (> beg (match-end 0))) (_ 'robust) ;; UP is a robust greater element containing changes. ;; We only need to extend its ending boundaries.
[elpa] externals/org 003968f 7/9: test-org-element: Rename cache-bugs test to cache-table
branch: externals/org commit 003968f94e53d5d19784ee2fa28b35399191178e Author: Ihor Radchenko Commit: Ihor Radchenko test-org-element: Rename cache-bugs test to cache-table * testing/lisp/test-org-element.el (test-org-element/cache): The bug has been fixed. Old test name does not make sense anymore. --- testing/lisp/test-org-element.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index 47e841a..f9fc114 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -4069,8 +4069,8 @@ Text :end (org-element-property :parent (org-element-at-point))) (+ parent-end 3)) -(ert-deftest test-org-element/cache-bugs () - "Test basic expectations and common pitfalls for cache." +(ert-deftest test-org-element/cache-table () + "Test handling edits in tables." ;; Unindented second row of the table should not be re-parented by ;; inserted item. (should
[elpa] externals/org f0c474e 9/9: test-org-element: Add new tests for org-element-cache
branch: externals/org commit f0c474e659b81da0d2ab75e7ec109355965f7a1c Author: Ihor Radchenko Commit: Ihor Radchenko test-org-element: Add new tests for org-element-cache * testing/lisp/test-org-element.el (test-org-element/cache): Add tests for edits near :end of an element. --- testing/lisp/test-org-element.el | 16 1 file changed, 16 insertions(+) diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index 54ca740..0f66d6c 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -4068,6 +4068,22 @@ Text (should (eq 'example-block (org-element-type (org-element-at-point (re-search-forward "END_") (org-element-type (org-element-at-point)) + ;; Test edits near :end of element + (should-not (eq 'headline + (org-test-with-temp-text "* H1\nP1\n*H2\n" +(org-element-cache-map #'ignore :granularity 'element) +(insert "Blah") +(org-element-type (org-element-at-point) + (should-not (eq 'headline + (org-test-with-temp-text "* H1\nP1\n*H2\n" +(org-element-cache-map #'ignore :granularity 'element) +(backward-delete-char 1) +(org-element-type (org-element-at-point) + (should (eq 'headline + (org-test-with-temp-text "* H1\nP1\n
[elpa] externals/org fd93ad6 3/9: org-element-cache: Do not treat inserting newline at :begin sensitive
branch: externals/org commit fd93ad698ad2bc65d81dcecc9fc63c167f13e84d Author: Ihor Radchenko Commit: Ihor Radchenko org-element-cache: Do not treat inserting newline at :begin sensitive * lisp/org-element.el (org-element--cache-before-change): Do not match `org-element--cache-sensitive-re' against an element starting at END when END is at bol. Such changes never break an element structure (as opposed to inserting non-newline right at :begin of an element). --- lisp/org-element.el | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lisp/org-element.el b/lisp/org-element.el index c7418f9..b1edb6c 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -6522,7 +6522,17 @@ The function returns the new value of `org-element--cache-change-warning'." (setq org-element--cache-change-tic (buffer-chars-modified-tick)) (goto-char beg) (beginning-of-line) - (let ((bottom (save-excursion (goto-char end) (line-end-position + (let ((bottom (save-excursion + (goto-char end) + (if (bolp) + ;; FIXME: Potential pitfall. + ;; We are appending to an element end. + ;; Unless the last inserted char is not + ;; newline, the next element is not broken + ;; and does not need to be purged from the + ;; cache. + end + (line-end-position) (prog1 (let ((org-element--cache-change-warning-before org-element--cache-change-warning) (org-element--cache-change-warning-after))
[elpa] externals/org 23d8d59 1/9: ob-gnuplot: Use org backend when assigning table to variable
branch: externals/org commit 23d8d59df80a25f36dc35aa94b397ce2b0a75ae0 Author: Ihor Radchenko Commit: Ihor Radchenko ob-gnuplot: Use org backend when assigning table to variable * lisp/ob-gnuplot.el (org-babel-gnuplot-table-to-data): Switch to 'org backend when exporting table data to plain text table. ascii backend incorrectly handles quote transcoders that change the column width and sometimes throws an error. (ascii backend simply ignores transcoded table cells and calculates width based on the initial cell text). --- lisp/ob-gnuplot.el | 20 +++- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/lisp/ob-gnuplot.el b/lisp/ob-gnuplot.el index 8c4a595..b72126a 100644 --- a/lisp/ob-gnuplot.el +++ b/lisp/ob-gnuplot.el @@ -287,11 +287,21 @@ Pass PARAMS through to `orgtbl-to-generic' when exporting TABLE." (with-temp-file data-file (insert (let ((org-babel-gnuplot-timestamp-fmt (or (plist-get params :timefmt) "%Y-%m-%d-%H:%M:%S"))) - (orgtbl-to-generic - table - (org-combine-plists - '(:sep "\t" :fmt org-babel-gnuplot-quote-tsv-field :raw t :backend ascii) - params) + (replace-regexp-in-string + ;; org export backend adds "|" at the beginning/end of + ;; the table lines. Strip those. + "^|\\(.+\\)|$" + "\\1" + (orgtbl-to-generic + table + (org-combine-plists +'( :sep "\t" :fmt org-babel-gnuplot-quote-tsv-field +;; Two setting below are needed to make :fmt work. +:raw t +;; Use `org', not `ascii' because `ascii' may +;; sometimes mishandle quoted strings. +:backend org) +params)) data-file) (provide 'ob-gnuplot)
[elpa] externals/org updated (8908fba -> f0c474e)
elpasync pushed a change to branch externals/org. from 8908fba compat: Silence byte-compiler new 23d8d59 ob-gnuplot: Use org backend when assigning table to variable new cfe4b17 org-element-cache: Optimise changed property drawer detection new fd93ad6 org-element-cache: Do not treat inserting newline at :begin sensitive new 6339c62 org-element-cache: Do not consider BEGIN lines of elements sensitive new 6998536 org-element-cache: Consider non-PROPERTIES drawers robust new 5840e4d org-element-cache Do not make headline non-robust after changes at :end new 003968f test-org-element: Rename cache-bugs test to cache-table new 4bad221 test-org-element: Add new tests new f0c474e test-org-element: Add new tests for org-element-cache Summary of changes: lisp/ob-gnuplot.el | 20 ++- lisp/org-element.el | 28 +++--- testing/lisp/test-org-element.el | 43 ++-- 3 files changed, 77 insertions(+), 14 deletions(-)
[elpa] externals/org 6339c62 4/9: org-element-cache: Do not consider BEGIN lines of elements sensitive
branch: externals/org commit 6339c622f8cb7621161454e7efd8411514fc762a Author: Ihor Radchenko Commit: Ihor Radchenko org-element-cache: Do not consider BEGIN lines of elements sensitive * lisp/org-element.el (org-element--cache-sensitive-re): Remove #+begin_ and \begin{ lines from sensitive regexp. Such changes can be handled without a need to re-parse from earlier position. If a change introduces a new element, the new element will be recognised and the unupdated elements not intersecting with the new element will be handled during Phase 1. --- lisp/org-element.el | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lisp/org-element.el b/lisp/org-element.el index b1edb6c..30721fe 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -6491,10 +6491,9 @@ If you observe Emacs hangs frequently, please report this to Org mode mailing li "^\\*+ " "\\|" "end{[A-Za-z0-9*]+}[ \t]*$" "\\|" "^[ \t]*\\(?:" - "#\\+\\(?:BEGIN[:_]\\|END\\(?:_\\|:?[ \t]*$\\)\\)" "\\|" + "#\\+END\\(?:_\\|:?[ \t]*$\\)" "\\|" org-list-full-item-re "\\|" ":\\(?: \\|$\\)" "\\|" - "begin{[A-Za-z0-9*]+}" "\\|" ":\\(?:\\w\\|[-_]\\)+:[ \t]*$" "\\)") "Regexp matching a sensitive line, structure wise.
[elpa] externals/org 6998536 5/9: org-element-cache: Consider non-PROPERTIES drawers robust
branch: externals/org commit 69985367cd5a1f39d060b295f66c67bc245eb93f Author: Ihor Radchenko Commit: Ihor Radchenko org-element-cache: Consider non-PROPERTIES drawers robust * lisp/org-element.el (org-element--cache-for-removal): Drawers are generally robust elements (they cannot be changed if a non-sensitive change is made inside their contents). The only exception is PROPERTIES drawer that may switch back and forth between ordinary drawer and properties drawer depending on its contents. The old code treated all possible drawer as non-robust for this reason, degrading performance on large LOGBOOK drawers that are now processed much faster since they do not need to be removed and re-parsed on every single change. --- lisp/org-element.el | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/org-element.el b/lisp/org-element.el index 30721fe..2e1c108 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -6631,7 +6631,10 @@ known element in cache (it may start after END)." (while up (if (let ((type (org-element-type up))) (or (and (memq type '( center-block dynamic-block - quote-block special-block)) + quote-block special-block + drawer)) + (or (not (eq type 'drawer)) + (not (string= "PROPERTIES" (org-element-property :drawer-name up ;; Sensitive change. This is ;; unconditionally non-robust change. (not org-element--cache-change-warning)
[elpa] externals/org 5840e4d 6/9: org-element-cache Do not make headline non-robust after changes at :end
branch: externals/org commit 5840e4d61abc9238c87e67e001fc79cef29100e6 Author: Ihor Radchenko Commit: Ihor Radchenko org-element-cache Do not make headline non-robust after changes at :end * lisp/org-element.el (org-element--cache-for-removal): When changes involve :end of a headline, allow it to be re-parsed synchronously. --- lisp/org-element.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/org-element.el b/lisp/org-element.el index 2e1c108..4ed2408 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -6716,7 +6716,7 @@ known element in cache (it may start after END)." ;; The change is not inside headline. Not ;; updating here. (not (<= beg (org-element-property :begin up))) - (not (>= end (org-element-property :end up))) + (not (> end (org-element-property :end up))) (let ((current (org-with-point-at (org-element-property :begin up) (org-element-with-disabled-cache (org-element--current-element (point-max))
[elpa] externals/org 4bad221 8/9: test-org-element: Add new tests
branch: externals/org commit 4bad221a609aabde27b8e793ff812c22a4bb071a Author: Ihor Radchenko Commit: Ihor Radchenko test-org-element: Add new tests * testing/lisp/test-org-element.el (test-org-element/cache): Add new tests checking against intersected elements and checking that Phase 2 removes obsolete elements. --- testing/lisp/test-org-element.el | 23 +++ 1 file changed, 23 insertions(+) diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index f9fc114..54ca740 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -4045,6 +4045,29 @@ Text (delete-char -1) (search-backward "Para1") (org-element-type (org-element-at-point)) + ;; Make sure that we do not generate intersecting elements. + (should (eq 'paragraph + (org-test-with-temp-text ":DRAWER:\nP1\n\n:END:\n#+END_EXAMPLE" +(let ((org-element-use-cache t)) + (org-element-at-point (point-max)) + (org-element-at-point) + (insert "#+BEGIN_EXAMPLE") + (org-element-type (org-element-at-point)) + ;; But yet correctly slurp obsolete elements inside a new element. + (should (eq 'example-block + (org-test-with-temp-text ":DRAWER:\nP1\n\nP2\n#+END_EXAMPLE\n:END:" +(let ((org-element-use-cache t)) + (org-element-at-point (point-max)) + (save-excursion +(re-search-forward "P2") +(should (eq 'paragraph (org-element-type (org-element-at-point +(re-search-forward "END_") +(should (eq 'paragraph (org-element-type (org-element-at-point) + (insert "#+BEGIN_EXAMPLE") + (re-search-forward "P2") + (should (eq 'example-block (org-element-type (org-element-at-point + (re-search-forward "END_") + (org-element-type (org-element-at-point)) ;; Corner case: watch out drawers named "PROPERTIES" as they are ;; fragile, unlike to other drawers. (should
[elpa] externals/hyperbole a561a4a: Remove wrapped closing parens (#135)
branch: externals/hyperbole commit a561a4ace18733deec2ca0583e471f7c2c9fecec Author: Mats Lidell Commit: GitHub Remove wrapped closing parens (#135) --- hargs.el| 12 hbut.el | 9 +++-- hgnus.el| 3 +-- hib-doc-id.el | 3 +-- hib-social.el | 6 ++ hinit.el| 3 +-- hmail.el| 3 +-- hmh.el | 6 ++ hmouse-drv.el | 3 +-- hmouse-sh.el| 27 +-- hpath.el| 12 hrmail.el | 3 +-- htz.el | 3 +-- hui-jmenu.el| 3 +-- hui-menu.el | 39 +-- hui-mini.el | 48 hui-mouse.el| 18 ++ hui-select.el | 9 +++-- hui.el | 12 hversion.el | 3 +-- hvm.el | 9 +++-- hypb-maintenance.el | 3 +-- hyrolo-menu.el | 18 ++ hyrolo.el | 6 ++ kotl/kexport.el | 3 +-- kotl/kfile.el | 6 ++ kotl/kfill.el | 3 +-- kotl/kmenu.el | 25 - kotl/kotl-mode.el | 12 kotl/kvspec.el | 4 +--- 30 files changed, 104 insertions(+), 210 deletions(-) diff --git a/hargs.el b/hargs.el index 3080eb3..f4b7a72 100644 --- a/hargs.el +++ b/hargs.el @@ -346,8 +346,7 @@ Handles all of the interactive argument types that `hargs:iform-read' does." ;; Possibly non-existent file name ((when no-default (hpath:at-p 'file 'non-exist))) (no-default nil) - ((buffer-file-name)) - )) + ((buffer-file-name ((eq hargs:reading-p 'directory) (cond ((derived-mode-p 'dired-mode) (let ((dir (dired-get-filename nil t))) @@ -360,12 +359,10 @@ Handles all of the interactive argument types that `hargs:iform-read' does." ;; Possibly non-existent directory name ((when no-default (hpath:at-p 'directory 'non-exist))) (no-default nil) - (default-directory) - )) + (default-directory))) ((eq hargs:reading-p 'string) (or (hargs:delimited "\"" "\"") (hargs:delimited "'" "'") -(hargs:delimited "`" "'") -)) +(hargs:delimited "`" "'"))) ((or (eq hargs:reading-p 'actype) (eq hargs:reading-p 'actypes)) (let ((name (hargs:find-tag-default))) @@ -763,8 +760,7 @@ help when appropriate." ;; Get Lisp expression but don't evaluate. (?x . (sexpression . (read-minibuffer prompt default))) ;; Get Lisp expression and evaluate. - (?X . (sexpression . (eval-minibuffer prompt default))) - )) + (?X . (sexpression . (eval-minibuffer prompt default) (defvar hargs:iform-vector nil "Vector of forms for each interactive command character code.") diff --git a/hbut.el b/hbut.el index 835705f..1f03b8a 100644 --- a/hbut.el +++ b/hbut.el @@ -812,8 +812,7 @@ Suitable for use as part of `write-file-functions'." ;; never holding a buffer which is out of sync with file, ;; due to some other user's edits. ;; Maybe this should be user or site configurable. -(or (buffer-modified-p buf) (kill-buffer buf)) -) +(or (buffer-modified-p buf) (kill-buffer buf))) ;; Must return nil, so can be used as part of write-file-functions. nil) @@ -934,8 +933,7 @@ Ignore email-related buffers." (goto-char (+ (point) (- end start))) (if (not (eq (following-char) ?\ )) (insert ?\ )) - (insert comment-end) - ) + (insert comment-end)) ;;; Regexps derived in part from "filladapt.el" by Kyle E. Jones under ;;; the GPL. @@ -961,8 +959,7 @@ Ignore email-related buffers." ;; Fortran comments "\n[Cc][ \t]+" ;; Postscript comments -"\n[ \t]*\\(%+[ \t]*\\)+" -) +"\n[ \t]*\\(%+[ \t]*\\)+") "List of regexps of fill prefixes to remove from the middle of buttons.") (defunhbut:fill-prefix-remove (label) diff --git a/hgnus.el b/hgnus.el index fd0e4ad..48efdd2 100644 --- a/hgnus.el +++ b/hgnus.el @@ -93,8 +93,7 @@ as ARG means don't indent and don't delete any header fields." (interactive "P") (mail-yank-original arg) (exchange-point-and-mark) - (run-hooks 'news-reply-header-hook)) - ) + (run-hooks 'news-reply-header-hook))) ;;; ;;; Private variables diff --git a/hib-doc-id.el b/hib-doc-id.el index 68f799b..fa478cf 100644 --- a/hib-doc-id.el +++ b/hib-doc-id.el @@ -196,8 +196,7 @@ Also display standard Hyperbole help for implicit button BUT." (set-buffer-modi