Patch for Emacs erang-mode

Victor Ren victor.ren@REDACTED
Mon Jul 20 05:25:22 CEST 2009


Hello,

When erlang-mode is loaded, the templates defined in erlang-mode is
added to tempo-tags (the default tags for all mode in Emacs). So
unexpected template expansions may happen in other mode.  

I bind "space" with a function which expand the template when a
tempo-tag is detected.   In Emacs erlang-mode, when I input "if ", the
if statement will be inserted automatically.  But this also happen in
other mode. 

I build a patch to fix this problem.   The solution is to add tempo tags
for elang-mode to a mode special taglist - erlang-tempo-tags and
activiate these tags only in erlang-mode.

*** /usr/lib/erlang/lib/tools-2.6.2/emacs/erlang.el     Mon Jul 20
11:07:41 2009
--- /usr/erlang.el    Mon Jul 20 11:07:45 2009
***************
*** 562,567 ****
--- 562,570 ----
  
  ;; Tempo skeleton templates:
  
+ (defvar erlang-tempo-tags nil
+   "Tempo tags for erlang mode")
+ 
  (defvar erlang-skel
    '(("If"            "if"            erlang-skel-if)
      ("Case"          "case"          erlang-skel-case)
***************
*** 2003,2008 ****
--- 2006,2012 ----
    (erlang-tags-init)
    (erlang-font-lock-init)
    (erlang-skel-init)
+   (tempo-use-tag-list 'erlang-tempo-tags)
    (run-hooks 'erlang-mode-hook)
    (if (zerop (buffer-size))
        (run-hooks 'erlang-new-file-hook)))
***************
*** 2888,2894 ****
  			  ;; variables describing the templates take
effect
  			  ;; immdiately.
  			  (list (list 'erlang-skel-include (nth 2 (car
skel))))
! 			  (nth 1 (car skel)))
  		 (setq menu (cons (erlang-skel-make-menu-item
  				   (car skel)) menu))))
  	  (setq skel (cdr skel)))
--- 2892,2900 ----
  			  ;; variables describing the templates take
effect
  			  ;; immdiately.
  			  (list (list 'erlang-skel-include (nth 2 (car
skel))))
! 			  (nth 1 (car skel))
!               (car skel)
!               'erlang-tempo-tags)
  		 (setq menu (cons (erlang-skel-make-menu-item
  				   (car skel)) menu))))
  	  (setq skel (cdr skel)))


More information about the erlang-patches mailing list