Skip to content

"company-omnisharp" makes "company-mode" hook slow #491

@bezirg

Description

@bezirg

Hello,

When opening other files than .cs, e.g. .el or .ts files, I see that there is a company-omnisharp function called, even if the buffer loaded is not in csharp mode.

This makes the 1st-time-loading of an emacs-lisp file very slow. Trying to profile this with emacs profiler shows:

              - emacs-lisp-mode                                    64  71%
               - run-mode-hooks                                    64  71%
                - apply                                            64  71%
                 - run-hooks                                       64  71%
                  - #<compiled 0x15917b8446e9>                     62  69%
                   - company-mode                                  62  69%
                    - mapc                                         58  65%
                     - company-init-backend                        58  65%
                      + company-omnisharp                          56  62%
                      + company-dabbrev-code                        1   1%
                    + defvar                                        2   2%
                      byte-code                                     1   1%

, which shows that 87% of the time setting up the emacs-lisp-mode was spent on the company-omnisharp function. The impact of this company-omnisharp varies on the file / mode loaded.

Trying to set:

(add-hook 'emacs-lisp-mode-hook (lambda ()
                                  (set (make-local-variable 'company-backends) '(company-capf company-dabbrev-code company-keywords))
                                  (company-mode)
                                  ))

, did not improve loading times and company-omnisharp still ran.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions