* How to make a mode dependent operation ? @ 2010-12-04 19:50 Fren Zeee 2010-12-04 20:08 ` Dimitri Fontaine ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: Fren Zeee @ 2010-12-04 19:50 UTC (permalink / raw) To: Emacs Dev [emacs-devel] Here is a simple newbie problem : In c-mode, I want to insert a skeleton of function as () { } and In lisp-mode, I want ( defun () "" ) and similarly in scheme, java, python, haskell, pascal ... What is the quick but maybe not the dirty way to do it ? What is the PRO way to do it ? I have heard a little about the hooking hooks :) What is a hook and what is proper place of use ? Is it appropriate for this kind of private customization ? Franz ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: How to make a mode dependent operation ? 2010-12-04 19:50 How to make a mode dependent operation ? Fren Zeee @ 2010-12-04 20:08 ` Dimitri Fontaine 2010-12-04 20:54 ` Eric M. Ludlam 2010-12-04 21:40 ` Glenn Morris 2 siblings, 0 replies; 4+ messages in thread From: Dimitri Fontaine @ 2010-12-04 20:08 UTC (permalink / raw) To: Fren Zeee; +Cc: Emacs Dev [emacs-devel] Fren Zeee <frenzeee@gmail.com> writes: > In c-mode, I want to insert a skeleton of function as [...] > and similarly in scheme, java, python, haskell, pascal ... See either (info "(autotype) Top") in bare Emacs, or yasnippet here: http://code.google.com/p/yasnippet/ Regards, -- dim ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: How to make a mode dependent operation ? 2010-12-04 19:50 How to make a mode dependent operation ? Fren Zeee 2010-12-04 20:08 ` Dimitri Fontaine @ 2010-12-04 20:54 ` Eric M. Ludlam 2010-12-04 21:40 ` Glenn Morris 2 siblings, 0 replies; 4+ messages in thread From: Eric M. Ludlam @ 2010-12-04 20:54 UTC (permalink / raw) To: Fren Zeee; +Cc: Emacs Dev [emacs-devel] Hi, To create a mode-specific operation, or a function that has different behaviors based on the major-mode of a given buffer, you can use 'mode-local'. Mode-local is a part of Emacs 23.2, and you can use define-overloadable-function to create the default behavior. Then for each mode, use define-mode-local-override to create an implementation for that mode. If you are specifically looking into template insertion, there is SRecode which is just another template system like skeleton, tempo, etc. It is targeted at mode independent code generation, and has some templates for C, lisp, and Java already for basic function creation. Tools like autocomplete or yasnippet has a better UI if you want to insert random small bits of text. To turn on SRecode, use global-srecode-minor-mode. Eric On 12/04/2010 02:50 PM, Fren Zeee wrote: > Here is a simple newbie problem : > > In c-mode, I want to insert a skeleton of function as > > > () { > > > > } > > > and In lisp-mode, I want > > ( defun () > "" > > > ) > > > and similarly in scheme, java, python, haskell, pascal ... > > > What is the quick but maybe not the dirty way to do it ? > > > What is the PRO way to do it ? I have heard a little about the hooking > hooks :) > > > What is a hook and what is proper place of use ? Is it appropriate for > this kind of private customization ? > > > Franz > > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: How to make a mode dependent operation ? 2010-12-04 19:50 How to make a mode dependent operation ? Fren Zeee 2010-12-04 20:08 ` Dimitri Fontaine 2010-12-04 20:54 ` Eric M. Ludlam @ 2010-12-04 21:40 ` Glenn Morris 2 siblings, 0 replies; 4+ messages in thread From: Glenn Morris @ 2010-12-04 21:40 UTC (permalink / raw) To: emacs-devel This question was simultaneously posted to 5 newsgroups (gnu.emacs.help, comp.emacs, comp.lang.lisp, comp.unix.shell, comp.emacs.xemacs) and this mailing list. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-12-04 21:40 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-12-04 19:50 How to make a mode dependent operation ? Fren Zeee 2010-12-04 20:08 ` Dimitri Fontaine 2010-12-04 20:54 ` Eric M. Ludlam 2010-12-04 21:40 ` Glenn Morris
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.