emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/company 8e29b04 1/2: Make company-tng-mode clean up aft


From: ELPA Syncer
Subject: [elpa] externals/company 8e29b04 1/2: Make company-tng-mode clean up after itself better
Date: Thu, 22 Apr 2021 21:57:07 -0400 (EDT)

branch: externals/company
commit 8e29b04748e8281d44868b85df986e8b285884d7
Author: Dmitry Gutov <dgutov@yandex.ru>
Commit: Dmitry Gutov <dgutov@yandex.ru>

    Make company-tng-mode clean up after itself better
---
 company-tng.el | 33 +++++++++++++++++++++++----------
 1 file changed, 23 insertions(+), 10 deletions(-)

diff --git a/company-tng.el b/company-tng.el
index 3bfa298..59e466f 100644
--- a/company-tng.el
+++ b/company-tng.el
@@ -1,6 +1,6 @@
 ;;; company-tng.el --- company-mode configuration for single-button interaction
 
-;; Copyright (C) 2017-2020  Free Software Foundation, Inc.
+;; Copyright (C) 2017-2021  Free Software Foundation, Inc.
 
 ;; Author: Nikita Leshenko
 
@@ -145,6 +145,17 @@ confirm the selection and finish the completion."
 
 (declare-function eglot--snippet-expansion-fn "eglot")
 
+(defvar company-tng-map
+  (let ((keymap (make-sparse-keymap)))
+    (set-keymap-parent keymap company-active-map)
+    (define-key keymap [return] nil)
+    (define-key keymap (kbd "RET") nil)
+    (define-key keymap [tab] 'company-select-next)
+    (define-key keymap (kbd "TAB") 'company-select-next)
+    (define-key keymap [backtab] 'company-select-previous)
+    (define-key keymap (kbd "S-TAB") 'company-select-previous)
+    keymap))
+
 ;;;###autoload
 (define-minor-mode company-tng-mode
  "This minor mode enables `company-tng-frontend'."
@@ -155,26 +166,28 @@ confirm the selection and finish the completion."
     (setq company-frontends
           (add-to-list 'company-frontends 'company-tng-frontend))
     (when company-tng-auto-configure
-      (setq company-require-match nil)
       (setq company-frontends '(company-tng-frontend
                                 company-pseudo-tooltip-frontend
                                 company-echo-metadata-frontend))
-      (setq company-clang-insert-arguments nil
+      (setq company-require-match nil
+            company-clang-insert-arguments nil
             company-semantic-insert-arguments nil
             company-rtags-insert-arguments nil
             lsp-enable-snippet nil)
       (advice-add #'eglot--snippet-expansion-fn :override #'ignore)
-      (let ((keymap company-active-map))
-        (define-key keymap [return] nil)
-        (define-key keymap (kbd "RET") nil)
-        (define-key keymap [tab] 'company-select-next)
-        (define-key keymap (kbd "TAB") 'company-select-next)
-        (define-key keymap [backtab] 'company-select-previous)
-        (define-key keymap (kbd "S-TAB") 'company-select-previous)))
+      (setq company-active-map company-tng-map))
     (setq company-selection-default nil))
    (t
     (setq company-frontends
           (delete 'company-tng-frontend company-frontends))
+    (when company-tng-auto-configure
+      (setq company-require-match 'company-explicit-action-p
+            company-clang-insert-arguments t
+            company-semantic-insert-arguments t
+            company-rtags-insert-arguments t
+            lsp-enable-snippet t)
+      (advice-remove #'eglot--snippet-expansion-fn #'ignore)
+      (setq company-active-map (keymap-parent company-tng-map)))
     (setq company-selection-default 0))))
 
 (provide 'company-tng)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]