Warning, /sdk/kde-dev-scripts/kde-emacs/kde-emacs-tips.texi is written in an unsupported language. File is not indexed.

0001 \input texinfo  @c -*-texinfo-*-
0002 
0003 @finalout
0004 
0005 @c %**start of header
0006 @setfilename  kde-emacs-tips
0007 @settitle     KDE Emacs usefull programming tips
0008 @footnotestyle end
0009 @c @setchapternewpage odd !! we don't want blank pages
0010 @c %**end of header
0011 
0012 @dircategory Emacs
0013 @direntry
0014 * KDE Emacs: (kde-emacs).   Emacs mode for editing KDE/QT C++/C code.
0015 @end direntry
0016 
0017 @ifnottex
0018 Copyright @copyright{} 2002 Zack Rusin and KDE Development Team
0019 
0020 Permission is granted to copy, distribute and/or modify this document
0021 under the terms of the GNU Free Documentation License, Version 1.3
0022 or any later version published by the Free Software Foundation;
0023 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
0024 A copy of the license is included in the section entitled
0025 "Documentation License".
0026 @end ifnottex
0027 
0028 @titlepage
0029 @sp 10
0030 
0031 @center @titlefont{KDE Emacs Package}
0032 @sp 2
0033 @center @subtitlefont{KDE Emacs package documentation and programming tips.}
0034 @sp 2
0035 @author Zack Rusin
0036 
0037 @page
0038 @vskip 0pt plus 1filll
0039 Copyright @copyright{} 2002 Zack Rusin & KDE Development Team
0040 @sp 1
0041 Permission is granted to copy, distribute and/or modify this document
0042 under the terms of the GNU Free Documentation License, Version 1.3
0043 or any later version published by the Free Software Foundation;
0044 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
0045 A copy of the license is included in the section entitled
0046 "Documentation License".
0047 @end titlepage
0048 
0049 @node    Top, Introduction, (dir), (dir)
0050 @comment node-name, next, previous, up
0051 
0052 @macro kdeemacs
0053 KDE Emacs
0054 @end macro
0055 
0056 @ifinfo
0057 @top @kdeemacs{}
0058 
0059 @kdeemacs{} is an Emacs package with tons of useful features
0060 which ease KDE development process. 
0061 KDE Emacs usefull programming tips.
0062 
0063 @end ifinfo
0064 
0065 @menu
0066 * Introduction::
0067 * Getting Connected::
0068 * Generating stubs::
0069 * Tips::
0070 * Documentation License::
0071 @end menu
0072 
0073 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0074 @node    Introduction, Getting Connected, Top, Top
0075 @comment node-name, next, previous, up
0076 @chapter    Introduction
0077 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0078 
0079 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0080 @node    Getting Connected, Generating stubs, Introduction, Top
0081 @comment node-name, next, previous, up
0082 @chapter    Getting Connected
0083 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0084 @menu
0085 * Sect. 2.1:: Installation
0086 * Sect. 2.2:: Files
0087 * Sect. 2.3:: Keybindings
0088 @end menu
0089 
0090 @node     Sect. 2.1, Sect. 2.2, Chapter 2, Chapter 2
0091 @section @code{Installation}
0092 @comment  node-name, next,      previous,  up
0093 
0094 @node     Sect. 2.2, Sect. 2.3, Sect. 2.1, Chapter 2
0095 @section @code{Files}
0096 @comment  node-name, next,      previous,  up
0097 
0098 @node     Sect. 2.3, , Sect 2.2, Chapter 2
0099 @section @code{Keybindings}
0100 @comment  node-name, next,      previous,  up
0101 
0102 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0103 @node    Generating stubs , Tips, Getting Connected, Top
0104 @comment node-name, next, previous, up
0105 @chapter    Generating stubs
0106 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0107 
0108 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0109 @node    Tips, Documentation License, Generating stubs, Top
0110 @comment node-name, next, previous, up
0111 @chapter    Tips
0112 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0113 
0114 @sp 1
0115 @strong{Q.} @emph{How do I hide #ifdef's in source files without
0116 actually changing them?}
0117 
0118 @strong{A.}  Use @code{hide-ifdef-mode} which supports hiding of ifdef
0119 blocks without actually changing the file. In this mode @kbd{C-c @@
0120 C-d} hides ifdef block and @kbd{C-c @@ C-s} shows it again.
0121 
0122 @sp 1
0123 @strong{Q.} @emph{How do I get more information about the keybindings
0124 of the currently active modes?}
0125 
0126 @strong{A.} Type @kbd{M-x describe-mode}.
0127 
0128 @sp 1
0129 @strong{Q.} @emph{How do I get automatic syntax higlighting of my
0130 custom types?}
0131 
0132 @strong{A.} Use a package named @file{ctypes.el} which does exactly
0133 that.
0134 
0135 @sp 1
0136 @strong{Q.} @emph{Is it possible to highlight dangerous syntax, just
0137 like Borland JBuilder does it?} 
0138 
0139 @strong{A.} Yes, use the @file{cwarn.el} package.
0140 
0141 @sp 1
0142 @strong{Q.} @emph{How do I easily customize Emacs faces/colors?}
0143 
0144 @strong{A.} Use the @file{color-theme.el} package.
0145 
0146 @sp 1
0147 @strong{Q.} @emph{How do I set the taskbar Emacs identification string?}
0148 
0149 @strong{A.} To your @file{.emacs} add a line like:
0150 @example
0151 (setq frame-title-format "%b (%m)")
0152 @end example
0153 which will display ``filename (mode)'' type of string in the
0154 taskbar. Type @kbd{C-h v frame-title-format}  to get more info.
0155 
0156 @sp 1
0157 @strong{Q.} @emph{Can I make Emacs jump to the matching parenthesis
0158 with @kbd{%} just like vi?}
0159 
0160 @strong{A.} Yes, just add to your @file{.emacs} something like:
0161 @example
0162 ;; Make the % key jump to the matching {}[]() if on another, like VI
0163 (global-set-key "%" 'match-paren)
0164 
0165 (defun match-paren (arg)
0166   "Go to the matching parenthesis if on parenthesis otherwise insert %."
0167   (interactive "p")
0168   (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1))
0169         ((looking-at "\\s\)") (forward-char 1) (backward-list 1))
0170         (t (self-insert-command (or arg 1)))))
0171 @end example
0172 
0173 @sp 1
0174 @strong{Q.} @emph{Can I have words like FIXME, TODO, HACK or NOTE 
0175 higlighted in documentation strings?}
0176 
0177 @strong{A.} Yes, either use @file{code-keywords.el} package or wait
0178 till I'll add it to @kdeemacs{}.
0179 
0180 @sp 1
0181 @strong{Q.} @emph{I really, really hate identifiersNamedLikeThis. I'd
0182 like to change them to identifiers_named_like_this but the
0183 maintainer of the application/library that I'm hacking on doesn't
0184 agree with me. What can I do? }
0185 
0186 @strong{A.} Use the @file{glasses.el} package which changes
0187 identifiersNamedLikeThis to identifiers_named_like_this in the
0188 buffers you're editing and switches them back to their original form
0189 once you save those buffers.
0190 
0191 @sp 1
0192 @strong{Q.} @emph{Is it possible to get function completion or
0193 signature display in Emacs? Will it ever be done?}
0194 
0195 @strong{A.} Yes and yes. I've been planning on doing this for quite a
0196 while and hopefully will have this finished pretty soon (no dates
0197 though :) ) The first thing that should be done is writing a few
0198 fixes for the Semantic package (@file{c.bnf} to be more exact),
0199 because Semantic doesn't handle templates, member function declared
0200 as const or KDE access specifiers, once this is done all that will be
0201 left is using semanticdb package which efficiently stores and retrieves
0202 large amounts of tokens and then displaying tokens belonging to types at
0203 point which match current context.
0204 
0205 @sp 1
0206 @strong{Q.} @emph{Is there a package that would highlight changes that
0207 I made to a certain file?}
0208 
0209 @strong{A.} I wouldn't be writing this if there wouldn't - try
0210 @kbd{M-x highlight-changes-mode}.
0211 
0212 @sp 1
0213 @strong{Q.} @emph{How to get a diff between the stuff I have in my
0214 local buffer and the file on disk?}
0215 
0216 @strong{A.} Use ibuffer package. After @kbd{M-x ibuffer} typing
0217 @kbd{=} over a file will display a diff between the buffer and the
0218 file on the disk.
0219 
0220 @sp 1
0221 @strong{Q.} @emph{I want to temporarily highlight certain variable in
0222 a file, how to do it?}
0223 
0224 @strong{A.} Type @kbd{M-x hi-lock-mode}, now @kbd{C-x w h
0225 @emph{regexp} @key{RET} @emph{face} @key{RET}} highlights regexp with
0226 face in the current file and @kbd{C-x w r @emph{regexp} @key{RET}}
0227 unhighlights it.
0228 
0229 @node    Documentation License, Top, Tips, Top
0230 @comment node-name, next, previous, up
0231 @appendix GNU Free Documentation License
0232 @include fdl.texi
0233 
0234 @node    Concept Index,     , Variables Index, Top
0235 @c        node-name,    next, previous,        up
0236 @unnumbered Concept Index
0237 
0238 @printindex cp
0239 
0240 @contents
0241 @bye