From bd9e6617827818fd043452c08c606f07b78014a0 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdesdk@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- scripts/kde-emacs/kde-emacs-tips.texi | 257 ++++++++++++++++++++++++++++++++++ 1 file changed, 257 insertions(+) create mode 100644 scripts/kde-emacs/kde-emacs-tips.texi (limited to 'scripts/kde-emacs/kde-emacs-tips.texi') diff --git a/scripts/kde-emacs/kde-emacs-tips.texi b/scripts/kde-emacs/kde-emacs-tips.texi new file mode 100644 index 00000000..ee7c0f19 --- /dev/null +++ b/scripts/kde-emacs/kde-emacs-tips.texi @@ -0,0 +1,257 @@ +\input texinfo @c -*-texinfo-*- + +@finalout + +@c %**start of header +@setfilename kde-emacs-tips +@settitle KDE Emacs usefull programming tips +@footnotestyle end +@c @setchapternewpage odd !! we don't want blank pages +@c %**end of header + +@dircategory Emacs +@direntry +* KDE Emacs: (kde-emacs). Emacs mode for editing KDE/QT C++/C code. +@end direntry + +@ifnottex +Copyright @copyright{} 2002 Zack Rusin and KDE Development Team + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.1 or +any later version published by the Free Software Foundation; with the +Invariant Sections being ``The GNU Manifesto'', ``Distribution'' and +``GNU GENERAL PUBLIC LICENSE'', with the Front-Cover texts being ``A GNU +Manual'', and with the Back-Cover Texts as in (a) below. A copy of the +license is included in the section entitled ``GNU Free Documentation +License'' in the Emacs manual. + +(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify +this GNU Manual, like GNU software. Copies published by the Free +Software Foundation raise funds for GNU development.'' + +This document is part of a collection distributed under the GNU Free +Documentation License. If you want to distribute this document +separately from the collection, you can do so by adding a copy of the +license to the document, as described in section 6 of the license. +@end ifnottex + +@titlepage +@sp 10 + +@center @titlefont{KDE Emacs Package} +@sp 2 +@center @subtitlefont{KDE Emacs package documentation and programming tips.} +@sp 2 +@author Zack Rusin + +@page +@vskip 0pt plus 1filll +Copyright @copyright{} 2002 Zack Rusin & KDE Development Team +@sp 1 +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.1 or +any later version published by the Free Software Foundation; with the +Invariant Sections being ``The GNU Manifesto'', ``Distribution'' and +``GNU GENERAL PUBLIC LICENSE'', with the Front-Cover texts being ``A GNU +Manual'', and with the Back-Cover Texts as in (a) below. A copy of the +license is included in the section entitled ``GNU Free Documentation +License'' in the Emacs manual. + +(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify +this GNU Manual, like GNU software. Copies published by the Free +Software Foundation raise funds for GNU development.'' + +This document is part of a collection distributed under the GNU Free +Documentation License. If you want to distribute this document +separately from the collection, you can do so by adding a copy of the +license to the document, as described in section 6 of the license. +@end titlepage + +@node Top, Introduction, (dir), (dir) +@comment node-name, next, previous, up + +@macro kdeemacs +KDE Emacs +@end macro + +@ifinfo +@top @kdeemacs{} + +@kdeemacs{} is an Emacs package with tons of useful features +which ease KDE development process. +KDE Emacs usefull programming tips. + +@end ifinfo + +@menu +* Introduction:: +* Getting Connected:: +* Generating stubs:: +* Tips:: +@end menu + +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +@node Introduction, Getting Connected, Top, Top +@comment node-name, next, previous, up +@chapter Introduction +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +@node Getting Connected, Generating stubs, Introduction, Top +@comment node-name, next, previous, up +@chapter Getting Connected +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +@menu +* Sect. 2.1:: Installation +* Sect. 2.2:: Files +* Sect. 2.3:: Keybindings +@end menu + +@node Sect. 2.1, Sect. 2.2, Chapter 2, Chapter 2 +@section @code{Installation} +@comment node-name, next, previous, up + +@node Sect. 2.2, Sect. 2.3, Sect. 2.1, Chapter 2 +@section @code{Files} +@comment node-name, next, previous, up + +@node Sect. 2.3, , Sect 2.2, Chapter 2 +@section @code{Keybindings} +@comment node-name, next, previous, up + +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +@node Generating stubs , Tips, Getting Connected, Top +@comment node-name, next, previous, up +@chapter Generating stubs +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +@node Tips, Top, Generating stubs, Top +@comment node-name, next, previous, up +@chapter Tips +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +@sp 1 +@strong{Q.} @emph{How do I hide #ifdef's in source files without +actually changing them?} + +@strong{A.} Use @code{hide-ifdef-mode} which supports hiding of ifdef +blocks without actually changing the file. In this mode @kbd{C-c @@ +C-d} hides ifdef block and @kbd{C-c @@ C-s} shows it again. + +@sp 1 +@strong{Q.} @emph{How do I get more informations about the keybindings +of the currently active modes?} + +@strong{A.} Type @kbd{M-x describe-mode}. + +@sp 1 +@strong{Q.} @emph{How do I get automatic syntax higlighting of my +custom types?} + +@strong{A.} Use a package named @file{ctypes.el} which does exactly +that. + +@sp 1 +@strong{Q.} @emph{Is it possible to highlight dangerous syntax, just +like Borland JBuilder does it?} + +@strong{A.} Yes, use the @file{cwarn.el} package. + +@sp 1 +@strong{Q.} @emph{How do I easily customize Emacs faces/colors?} + +@strong{A.} Use the @file{color-theme.el} package. + +@sp 1 +@strong{Q.} @emph{How do I set the taskbar Emacs identification string?} + +@strong{A.} To your @file{.emacs} add a line like: +@example +(setq frame-title-format "%b (%m)") +@end example +which will display ``filename (mode)'' type of string in the +taskbar. Type @kbd{C-h v frame-title-format} to get more info. + +@sp 1 +@strong{Q.} @emph{Can I make Emacs jump to the matching parenthesis +with @kbd{%} just like vi?} + +@strong{A.} Yes, just add to your @file{.emacs} something like: +@example +;; Make the % key jump to the matching {}[]() if on another, like VI +(global-set-key "%" 'match-paren) + +(defun match-paren (arg) + "Go to the matching parenthesis if on parenthesis otherwise insert %." + (interactive "p") + (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1)) + ((looking-at "\\s\)") (forward-char 1) (backward-list 1)) + (t (self-insert-command (or arg 1))))) +@end example + +@sp 1 +@strong{Q.} @emph{Can I have words like FIXME, TODO, HACK or NOTE +higlighted in documentation strings?} + +@strong{A.} Yes, either use @file{code-keywords.el} package or wait +till I'll add it to @kdeemacs{}. + +@sp 1 +@strong{Q.} @emph{I really, really hate identifiersNamedLikeThis. I'd +like to change them to identifiers_named_like_this but the +maintainer of the application/library that I'm hacking on doesn't +agree with me. What can I do? } + +@strong{A.} Use the @file{glasses.el} package which changes +identifiersNamedLikeThis to identifiers_named_like_this in the +buffers you're editing and switches them back to their original form +once you save those buffers. + +@sp 1 +@strong{Q.} @emph{Is it possible to get function completion or +signature display in Emacs? Will it ever be done?} + +@strong{A.} Yes and yes. I've been planning on doing this for quite a +while and hopefully will have this finished pretty soon (no dates +though :) ) The first thing that should be done is writing a few +fixes for the Semantic package (@file{c.bnf} to be more exact), +because Semantic doesn't handle templates, member function declared +as const or KDE access specifiers, once this is done all that will be +left is using semanticdb package which efficiently stores and retrieves +large amounts of tokens and then displaying tokens belonging to types at +point which match current context. + +@sp 1 +@strong{Q.} @emph{Is there a package that would highlight changes that +I made to a certain file?} + +@strong{A.} I wouldn't be writing this if there wouldn't - try +@kbd{M-x highlight-changes-mode}. + +@sp 1 +@strong{Q.} @emph{How to get a diff between the stuff I have in my +local buffer and the file on disk?} + +@strong{A.} Use ibuffer package. After @kbd{M-x ibuffer} typing +@kbd{=} over a file will display a diff between the buffer and the +file on the disk. + +@sp 1 +@strong{Q.} @emph{I want to temporarily highlight certain variable in +a file, how to do it?} + +@strong{A.} Type @kbd{M-x hi-lock-mode}, now @kbd{C-x w h +@emph{regexp} @key{RET} @emph{face} @key{RET}} highlights regexp with +face in the current file and @kbd{C-x w r @emph{regexp} @key{RET}} +unhighlights it. + +@node Concept Index, , Variables Index, Top +@c node-name, next, previous, up +@unnumbered Concept Index + +@printindex cp + +@contents +@bye -- cgit v1.2.1