Commit Graph

12 Commits

Author SHA1 Message Date
kunhtkun
5f632bef38
[editors/emacs] Fix protobuf-mode definition (#9572)
Fix a few issues with the Emacs mode definition.

First, in 1ab7789f3 (2021-10-13, Emacs: Protobuf mode should be derived from
prog-mode) we made `protobuf-mode' a derived mode of `prog-mode' using the
`define-derived-mode' macro[1]. However, the definition body was not updated
accordingly. So in this commit, we:

- Remove the superfluous `(interactive)' form;
- Remove the unnecessary call of `kill-all-local-variables', which is already
  handled by `define-derived-mode' and could cause a few issues, for example,
  it prevents `prog-mode-hook' from being run;
- Remove forms that set `major-mode' and `mode-name', which are automatically
  set to the first and third arguments respectively;
- Remove forms that set key map, syntax table, and abbrev table, which are
  already handled automatically;
- Do not run `protobuf-mode-hook' explicitly in the body. It is already arranged
  to be run after the body.

Second, the call to `c-make-emacs-variables-local' is removed. It is called
inside `c-init-language-vars' already. Calling it again should do no harm now,
but to be future-proof it might be better to just remove it.

Finally, we move the `c-update-modeline' form to the :after-hook argument to
ensure it is run at the very end, so that the mode line will reflect all user
customizations done in various mode hooks. Similarly, we run
`c-mode-common-hook' also at the very end to leave a place for user
customizations (for example, set `imenu-generic-expression' in
`c-mode-common-hook').

[1] https://www.gnu.org/software/emacs/manual/html_node/elisp/Derived-Modes.html

Re: https://github.com/protocolbuffers/protobuf/issues/7316
Re: https://github.com/protocolbuffers/protobuf/pull/9076
2022-03-03 09:16:46 -08:00
Hong Xu
1ab7789f38
Emacs: Protobuf mode should be derived from prog-mode (#9076)
Prog mode is a basic major mode for buffers containing programming
language source code:
https://www.gnu.org/software/emacs/manual/html_node/elisp/Basic-Major-Modes.html

A lot of programming mode setup is based on whether the major mode is
derived from `prog-mode`.
2021-10-13 10:26:40 -07:00
Jimmy Yuen Ho Wong
ae4fd1e24b
Fix cl deprecation warning (#9046) 2021-10-09 11:54:15 -07:00
Yue Zhu
582558a589 Add imenu index support 2020-06-19 10:42:31 -07:00
Evan Klitzke
39d730dd96 Use lexical-binding in protobuf-mode.el 2020-05-19 17:15:35 -07:00
Philipp Stephani
979107ec7a Improve fix for https://github.com/google/protobuf/issues/295
Requiring the legacy ‘cl’ library unconditionally pollutes the namespace.
Instead, require it only when compiling and in known-broken versions.

This is almost the same patch that opoplawski suggested, except that I removed
the test for ‘emacs-repository-version’, which isn’t defined in Emacs 24.3.
2017-05-23 15:27:29 +02:00
Yutian Li
ddf6d1eb75 [master] Add dependency cl. Fixes google/protobuf#295. 2016-08-05 15:13:12 +08:00
Bo Yang
5db217305f down-integrate internal changes 2015-05-21 19:32:02 -07:00
kenton@google.com
d5cf7b55a6 Some sort of emacs protobuf mode fix. 2009-12-18 01:55:04 +00:00
kenton@google.com
f4c6e4b37e Fix protobuf-mode on XEmacs. 2009-09-15 17:12:06 +00:00
kenton@google.com
31afcd730b Fix problems with emacs protobuf mode, I guess. See <http://www.opensubscriber.com/message/emacs-devel@gnu.org/7155093.html>. Patch from domq@google.com. 2009-07-08 20:37:43 +00:00
kenton@google.com
2cdba5baee Add Emacs editor mode. Contributed by Alexandre Vassalotti. 2009-05-01 21:03:20 +00:00