From: Dmitry Gutov Date: Wed, 4 Feb 2015 16:33:55 +0000 (+0200) Subject: Truncate out-of-bounds search highlighting X-Git-Url: https://code.delx.au/gnu-emacs-elpa/commitdiff_plain/3e70e12bd942bbd0acac4963b5caca63756ad784 Truncate out-of-bounds search highlighting Fixes #294 --- diff --git a/company.el b/company.el index 86d93c238..af4671ecf 100644 --- a/company.el +++ b/company.el @@ -5,7 +5,7 @@ ;; Author: Nikolaj Schumacher ;; Maintainer: Dmitry Gutov ;; URL: http://company-mode.github.io/ -;; Version: 0.8.10 +;; Version: 0.8.11 ;; Keywords: abbrev, convenience, matching ;; Package-Requires: ((emacs "24.1") (cl-lib "0.5")) @@ -2231,9 +2231,12 @@ If SHOW-VERSION is non-nil, show the version in the echo area." (string-match (regexp-quote company-search-string) value (length company-prefix))) (let ((beg (+ margin (match-beginning 0))) - (end (+ margin (match-end 0)))) - (add-text-properties beg end '(face company-tooltip-search) - line)) + (end (+ margin (match-end 0))) + (width (- width (length right)))) + (when (< beg width) + (add-text-properties beg (min end width) + '(face company-tooltip-search) + line))) (add-text-properties 0 width '(face company-tooltip-selection mouse-face company-tooltip-selection) line) diff --git a/test/frontends-tests.el b/test/frontends-tests.el index 35c94c95e..613856e57 100644 --- a/test/frontends-tests.el +++ b/test/frontends-tests.el @@ -245,6 +245,26 @@ " MIRAI発売2カ月 ") (company--create-lines 0 999))))) +(ert-deftest company-fill-propertize-truncates-search-highlight () + (let ((company-search-string "foo") + (company-backend #'ignore) + (company-prefix "")) + (should (equal-including-properties + (company-fill-propertize "barfoo" nil 6 t nil nil) + #("barfoo" + 0 3 (face company-tooltip mouse-face company-tooltip-mouse) + 3 6 (face company-tooltip-search mouse-face company-tooltip-mouse)))) + (should (equal-including-properties + (company-fill-propertize "barfoo" nil 5 t "" " ") + #("barfo " + 0 3 (face company-tooltip mouse-face company-tooltip-mouse) + 3 5 (face company-tooltip-search mouse-face company-tooltip-mouse) + 5 6 (face company-tooltip mouse-face company-tooltip-mouse)))) + (should (equal-including-properties + (company-fill-propertize "barfoo" nil 3 t " " " ") + #(" bar " + 0 5 (face company-tooltip mouse-face company-tooltip-mouse)))))) + (ert-deftest company-column-with-composition () :tags '(interactive) (with-temp-buffer