|
View:
New views
20 Messages
—
Rating Filter:
Alert me
|
| < Prev | 1 - 2 | Next > |
|
|
Build failure (Wrong number of arguments)Hello,
I am currently having difficulties that building ecb(CVS-HEAD) with CEDET(CVS-HEAD). Emacs: Meadow3 Development environment : Cygwin-1.5.25 I have already modified ecb.el defcustom ecb-version-check nil. Errors as follows.. -- taku@sapphire ~/cvs_work/ecb $ make CEDET=../cedet/ Byte-compiling ECB with LOADPATH= ... emacs -batch -no-site-file -l ecb-compile-script --eval '(ecb-byte-compile t)' Loading subst-ksc... Loading subst-gb2312... Loading subst-big5... Loading subst-jis... Loading d:/home/taku/cvs_work/cedet/common/cedet.el (source)... Setting up CEDET packages... Setting up CEDET packages...done ECB 2.33 uses CEDET 1.0pre7 (contains semantic 2.0pre7, eieio 1.2, speedbar 1.0.3). Wrong number of arguments: #[(form val type) "!?2? !\"? \"?>?? !? ?0??! DC? #E))? ?" [type val res temp form cl-const-expr-p cl-make-type-test cl-const-expr-val cl-expr-contains (nil 1) ...] 6], 2 make: *** [ecb] Error 255 taku@sapphire ~/cvs_work/ecb --- Thanks in advance..Taku ------------------------------------------------------------------------------ The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: Build failure (Wrong number of arguments)Hello, ------------------------------------------------------------------------------ The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
ECB 2.40 released!Hi, ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: ECB 2.40 released!On 2009-05-16 18:11 +0100, klaus.berndl@... wrote:
> after a almost 4 years "tea-break" ;-) since the last release there > comes a new ECB: 2.40 is released. This is excellent news. BTW, there's some discussion on including cedet and ecb in Emacs 23.2. One of the blockers is ecb relies heavily on the advice facility. Is this still the case? Many thanks for the new release ;) -- .: Leo :. [ sdl.web AT gmail.com ] .: I use Emacs :. www.git-scm.com git - the one true version control system ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: ECB 2.40 released!On 2009-05-16 18:11 +0100, klaus.berndl@... wrote: ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
ECB 2.40 released!Hi, ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Can anyone forward my ECB 2.40 release announcement to the newsgroup gnu.emacs.sources?Hi, ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: ECB 2.40 released!<klaus.berndl@...> writes:
> On 2009-05-16 18:11 +0100, klaus.berndl@... wrote: >>> after a almost 4 years "tea-break" ;-) since the last release there >>> comes a new ECB: 2.40 is released. > >>This is excellent news. BTW, there's some discussion on including cedet >>and ecb in Emacs 23.2. One of the blockers is ecb relies heavily on the >>advice facility. Is this still the case? > > Yes, indeed - and IMHO building an IDE like ECB is quite impossible > without heavily advicing Emacs because Emacs is not designed to display certain content > in certain premanent windows within the same frame - the underlying window-management of Emacs > is designed to create smartly new windows if necessary... > > I know that Emacs 23 has already a new feature which can prevent windows from > being deleted by delete-other-window (C-x 1)...this is good and this can > make some ECB-advices obsolete or at least much more simple... > But this is not enough to throw away the advices of ECB...... > > But ECB has a full stable advice-backbone which allows full control of > all its advices and when they are active and when not. > This comes in by introducing four new macros `defecb-advice-set', > `defecb-advice', `ecb-with-original-adviced-function-set' and > `ecb-with-ecb-advice'... > With this backbone ECB is stable and save concerning advicing a lot > of functions. I was part of an effor to bring the sort of primitives Emacs needs to support applications like ECB. We were unable to finish this for emacs 23, but hopefully the feature can be made to qualify for inclusion in Emacs 24. In that case ECB could use those features, and then be included in Emacs. Basically the feature we worked on let you group Emacs windows together. Normal Emacs window operations only worked within the current window group by default. > > Of course it would be possible to enhance Emacs with new features so > most of the advices of ECB would be obsolete but IMHO this costs a lot > of thinking power and needs new and good and proven design decisions for > Emacs...unfortunately currently i could not say what *exactly* would be > necessary for Emacs to support ECB throwing away its advices.......... ;-( > As already said: needs intensive thinking about this topics.... > > I have not the time to do this because i'm to busy... BTW: I have only build up this > new release because new Emacs 23 and even more current CEDET (which is really > great work by Eric and the other cedet-guys!) are worth > to have at least a stable and powerful and smoothly working ECB (and previous > version of ECB had some drawbacks concerning this)...but i have no time > to invest much more (which would be necessary to integrate ECB in Emacs without > its advices)... > To be honest: It would great if ECB could be integrated in Emacs and if Emacs would > offer all stuff necessary to throw away the ECB-advices but because for me its > too expensive so i will *maintain* ECB as it is but nothing else... > > But: If there is someone out which is an elisp-guru and has plenty of time > and is willing to overtake ECB for the sake of integration in Emacs > i would appreciate this a lot and i would support this guy(s) as best > as possible... > >>Many thanks for the new release ;) > > Thanks back ;-) > > Klaus > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables > unlimited royalty-free distribution of the report engine > for externally facing server and web deployment. > http://p.sf.net/sfu/businessobjects_______________________________________________ > Cedet-devel mailing list > Cedet-devel@... > https://lists.sourceforge.net/lists/listinfo/cedet-devel Joakim Verona ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: ECB 2.40 released!klaus.berndl@... wrote:
> Hi, > > after an almost 4 years "tea-break" ;-) since the last release here > comes a new ECB: 2.40 is released. I got it and installed it (and installed Emacs 22.3 while I was at it) on my Windows machine. It works fine so far, with a couple of glitches: - When I first load a Python file after activating (or JS file, or...), the methods buffer is empty. I can get it to fill in the methods by doing M-x python-mode (which is redundant, the mode is already set in the buffer), or by setting the scratch buffer to python-mode before loading the file. - I want to collapse some of the classes in the methods buffer while I work on another one in the file. I can collapse them OK, but as soon as I start to edit a method in a non-collapsed class, the entire tree expands again. Any thoughts? Thanks, -- Don Dwiggins Advanced Publishing Technology ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: ECB 2.40 released!1. please always send a problem-report with the command `ecb-submit-problem-report' - this includes all informations i need
2. is semantic enables in your python-buffers (what does (semantic-active-p) return if you call this with M-:)? 3. Is semantic-idle-scheduler-mode active in your buffer? 4. What happens if you co not call pythom-mode but [C-c . r] or even [C-u][C-c . r]? 5. Collapsing: Hmm, maybe you should build up a small example file which you send to me and a step-by-step sceanrio what i must do, to reproduce the behavior (beginning with 1. Start Emacs, 2. activate ECB...!) Thanks Klaus -----Ursprüngliche Nachricht----- Von: Don Dwiggins [mailto:ddwiggins@...] Gesendet: Dienstag, 19. Mai 2009 05:24 An: ecb-list@... Betreff: Re: [ECB-list] ECB 2.40 released! klaus.berndl@... wrote: > Hi, > > after an almost 4 years "tea-break" ;-) since the last release here > comes a new ECB: 2.40 is released. I got it and installed it (and installed Emacs 22.3 while I was at it) on my Windows machine. It works fine so far, with a couple of glitches: - When I first load a Python file after activating (or JS file, or...), the methods buffer is empty. I can get it to fill in the methods by doing M-x python-mode (which is redundant, the mode is already set in the buffer), or by setting the scratch buffer to python-mode before loading the file. - I want to collapse some of the classes in the methods buffer while I work on another one in the file. I can collapse them OK, but as soon as I start to edit a method in a non-collapsed class, the entire tree expands again. Any thoughts? Thanks, -- Don Dwiggins Advanced Publishing Technology ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: ECB 2.40 released!klaus.berndl@... wrote:
> 1. please always send a problem-report with the command `ecb-submit-problem-report' - this includes all informations i need Thanks for the reply; here 'tis: --------------------------------------- Please enter the details of your bug report here: When I first load a Python file (or JS file, or...) after activating, the methods buffer is empty. I can get it to fill in the methods by doing M-x python-mode (which is redundant, the mode is already set in the buffer), or by setting the scratch buffer to python-mode before loading the file. (I also ran into this problem earlier using ECB 2.32 with CEDET 1.0pre4.) Answering your questions: 2. is semantic enables in your python-buffers (what does (semantic-active-p) return if you call this with M-:)? It returns nil 3. Is semantic-idle-scheduler-mode active in your buffer? I don't think so; in fact, the Senator menu item doesn't show up until I invoke python-mode. 4. What happens if you co not call pythom-mode but [C-c . r] or even [C-u][C-c . r]? Nothing. One other thing: when I invoked python-mode, I noticed the following in the Messages buffer: Cache Error: [c:/Unix/.semanticdb/!drive_c!Dwig!Falcon!Development!Online!RCAServer!semantic.cache] (invalid-read-syntax . in wrong context), Restart [2 times] ... but it didn't seem to hurt anything. 5. Collapsing: Hmm, maybe you should build up a small example file which you send to me and a step-by-step sceanrio what i must do, to reproduce the behavior (beginning with 1. Start Emacs, 2. activate ECB...!) OK: 1) paste the following into a file: ------------------------------- class foo: def __init__(self): pass def foo1(self): pass def foo2(self): pass class bar: def __init__(self): pass def bar1(self): pass def bar2(self): pass ------------------------------- 2) start Emacs, 3) activate ECB 4) load the file 5) do what you must to populate the methods buffer ;^) 6) in the methods buffer, collapse the "foo" class 7) move the cursor to the bottom of the file, hit Return ... at this point, after a short delay, I see "foo" expand. (In fact, any change to the file will make it happen.) Emacs : GNU Emacs 22.3.1 (i386-mingw-nt5.1.2600) of 2008-09-06 on SOFT-MJASON Package: ECB: 2.40, CEDET: 1.0pre6, semantic: 2.0pre6, eieio: 1.2, speedbar: 1.0.2, JDEE: No JDEE current state: ============== (setq after-save-hook '(ecb-update-methods-after-saving) auto-mode-alist '(("\\.dz\\'" nil jka-compr) ("\\.g?z\\(~\\|\\.~[0-9]+~\\)?\\'" nil jka-compr) ("\\.bz2\\(~\\|\\.~[0-9]+~\\)?\\'" nil jka-compr) ("\\.Z\\(~\\|\\.~[0-9]+~\\)?\\'" nil jka-compr) ("\\.~?[0-9]+\\.[0-9][-.0-9]*~?\\'" nil t) ("\\.\\(?:orig\\|in\\|[bB][aA][kK]\\)\\'" nil t) ("\\.lzx\\'" . laszlo-nxml-mumamo-mode) ("\\.s?html?\\(\\.[a-zA-Z_]+\\)?\\'" . html-mumamo-mode) ("\\.x[ms]l\\'" . nxml-mode) ("\\.\\(xml\\|xsl\\|rng\\|xul\\|rdf\\)\\'" . nxml-mode) ("\\.xrc$" . nxml-mode) ("xml$" . nxml-mode) ("\\.rnc\\'" . rnc-mode) ("\\.js\\'" . javascript-mode) ("\\.ghtml\\'" . genshi-nxhtml-mumamo-mode) ("\\.epl\\'" . embperl-nxhtml-mumamo-mode) ("\\.phps\\'" . smarty-nxhtml-mumamo-mode) ("\\.erb\\'" . eruby-nxhtml-mumamo-mode) ("\\.rhtml\\'" . eruby-nxhtml-mumamo-mode) ("\\.djhtml\\'" . django-nxhtml-mumamo-mode) ("\\.asp\\'" . asp-nxhtml-mumamo-mode) ("\\.jsp\\'" . jsp-nxhtml-mumamo-mode) ("\\.phtml\\'" . nxhtml-mumamo-mode) ("\\.php\\'" . nxhtml-mumamo-mode) ("\\.xhtmlf\\'" . nxhtml-mumamo-mode) ("\\.htmlf\\'" . nxhtml-mumamo-mode) ("\\.xhtml\\'" . nxhtml-mumamo-mode) ("\\.xhtm\\'" . nxhtml-mumamo-mode) ("\\.html\\'" . nxhtml-mumamo-mode) ("\\.htm\\'" . nxhtml-mumamo-mode) ("\\.s?html?\\(\\.[a-zA-Z_]+\\)?\\'" . nxhtml-mumamo-mode) ("\\.s?html?\\(\\.[a-zA-Z_]+\\)?\\'" . nxhtml-mode) ("\\.gnus\\'" . emacs-lisp-mode) ("\\.pyw?$" . python-mode) ("\\.spec$" . python-mode) ("\\.nsi" . nsi-mode) ("\\.mai$" . mail-mode) ("\\.cls$" . visual-basic-mode) ("\\.bas$" . visual-basic-mode) ("\\.frm$" . visual-basic-mode) ("\\.\\(xhtml\\|html\\|asp\\|htm\\)" . nxhtml-mode) ("\\.tpl" . nxhtml-mumamo-mode) ("[^/]\\.dired$" . dired-virtual-mode) ("ProjStep\\.ede" . emacs-lisp-mode) ("Project\\.ede$" . emacs-lisp-mode) ("\\.srt$" . srecode-template-mode) ("\\.wy$" . wisent-grammar-mode) ("\\.by$" . bovine-grammar-mode) ("\\.vr[hi]?\\'" . vera-mode) ("\\.py\\'" . python-mode) ("\\.mixal\\'" . mixal-mode) ("\\.x[bdsru]?[cn]?\\'" . ld-script-mode) ("\\.ld[si]?\\>" . ld-script-mode) ("\\.x[bp]m\\'" . image-mode-maybe) ("\\.p[bpgn]m\\'" . image-mode) ("\\.tiff?\\'" . image-mode) ("\\.gif\\'" . image-mode) ("\\.png\\'" . image-mode) ("\\.jpe?g\\'" . image-mode) ("\\.[Pp][Rr][Oo]\\'" . idlwave-mode) ("/\\.[a-z0-9-]*gdbinit" . gdb-script-mode) ("\\.soa\\'" . dns-mode) ("\\.css\\'" . css-mode) ("\\.gcov\\'" . compilation-mode) ("\\.awk\\'" . awk-mode) ("\\.\\(u?lpc\\|pike\\|pmod\\(.in\\)?\\)\\'" . pike-mode) ("\\.idl\\'" . idl-mode) ("\\.java\\'" . java-mode) ("\\.m\\'" . objc-mode) ("\\.lex\\'" . c-mode) ("\\.y\\(acc\\)?\\'" . c-mode) ("\\.[ch]\\'" . c-mode) ("\\.\\(CC?\\|HH?\\)\\'" . c++-mode) ("\\.[ch]\\(pp\\|xx\\|\\+\\+\\)\\'" . c++-mode) ("\\.\\(cc\\|hh\\)\\'" . c++-mode) ("\\.bst\\'" . bibtex-style-mode) ("\\.s?html?\\(\\.[a-zA-Z_]+\\)?\\'" . html-mode) ("\\.te?xt\\'" . text-mode) ("\\.[tT]e[xX]\\'" . tex-mode) ("\\.ins\\'" . tex-mode) ("\\.ltx\\'" . latex-mode) ("\\.dtx\\'" . doctex-mode) ("\\.el\\'" . emacs-lisp-mode) ("\\.\\(scm\\|stk\\|ss\\|sch\\)\\'" . scheme-mode) ("\\.l\\'" . lisp-mode) ("\\.li?sp\\'" . lisp-mode) ("\\.[fF]\\'" . fortran-mode) ("\\.for\\'" . fortran-mode) ("\\.p\\'" . pascal-mode) ("\\.pas\\'" . pascal-mode) ("\\.ad[abs]\\'" . ada-mode) ("\\.ad[bs].dg\\'" . ada-mode) ("\\.\\([pP]\\([Llm]\\|erl\\|od\\)\\|al\\)\\'" . perl-mode) ("Imakefile\\'" . makefile-imake-mode) ("Makeppfile\\(?:\\.mk\\)?\\'" . makefile-makepp-mode) ("\\.makepp\\'" . makefile-makepp-mode) ("\\.mk\\'" . makefile-gmake-mode) ("[Mm]akefile\\'" . makefile-gmake-mode) ("\\.am\\'" . makefile-automake-mode) ("\\.texinfo\\'" . texinfo-mode) ("\\.te?xi\\'" . texinfo-mode) ("\\.[sS]\\'" . asm-mode) ("\\.asm\\'" . asm-mode) ("[cC]hange\\.?[lL]og?\\'" . change-log-mode) ("[cC]hange[lL]og[-.][0-9]+\\'" . change-log-mode) ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode) ("\\.scm\\.[0-9]*\\'" . scheme-mode) ("\\.[ck]?sh\\'\\|\\.shar\\'\\|/\\.z?profile\\'" . sh-mode) ("\\.bash\\'" . sh-mode) ("\\(/\\|\\`\\)\\.\\(bash_profile\\|z?login\\|bash_login\\|z?logout\\)\\'" . sh-mode) ("\\(/\\|\\`\\)\\.\\(bash_logout\\|shrc\\|[kz]shrc\\|bashrc\\|t?cshrc\\|esrc\\)\\'" . sh-mode) ("\\(/\\|\\`\\)\\.\\([kz]shenv\\|xinitrc\\|startxrc\\|xsession\\)\\'" . sh-mode) ("\\.m?spec\\'" . sh-mode) ("\\.m[mes]\\'" . nroff-mode) ("\\.man\\'" . nroff-mode) ("\\.sty\\'" . latex-mode) ("\\.cl[so]\\'" . latex-mode) ("\\.bbl\\'" . latex-mode) ("\\.bib\\'" . bibtex-mode) ("\\.sql\\'" . sql-mode) ("\\.m[4c]\\'" . m4-mode) ("\\.mf\\'" . metafont-mode) ("\\.mp\\'" . metapost-mode) ("\\.vhdl?\\'" . vhdl-mode) ("\\.article\\'" . text-mode) ("\\.letter\\'" . text-mode) ("\\.i?tcl\\'" . tcl-mode) ("\\.exp\\'" . tcl-mode) ("\\.itk\\'" . tcl-mode) ("\\.icn\\'" . icon-mode) ("\\.sim\\'" . simula-mode) ("\\.mss\\'" . scribe-mode) ("\\.f9[05]\\'" . f90-mode) ("\\.indent\\.pro\\'" . fundamental-mode) ("\\.pro\\'" . idlwave-mode) ("\\.prolog\\'" . prolog-mode) ("\\.tar\\'" . tar-mode) ("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\)\\'" . archive-mode) ("\\.\\(ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" . archive-mode) ("\\.\\(sx[dmicw]\\|odt\\)\\'" . archive-mode) ("\\`/tmp/Re" . text-mode) ("/Message[0-9]*\\'" . text-mode) ("\\.zone\\'" . zone-mode) ("\\`/tmp/fol/" . text-mode) ("\\.oak\\'" . scheme-mode) ("\\.sgml?\\'" . sgml-mode) ("\\.x[ms]l\\'" . xml-mode) ("\\.dtd\\'" . sgml-mode) ("\\.ds\\(ss\\)?l\\'" . dsssl-mode) ("\\.js\\'" . java-mode) ("\\.x[bp]m\\'" . c-mode) ("\\.d?v\\'" . verilog-mode) ("[]>:/\\]\\..*\\(emacs\\|gnus\\|viper\\)\\'" . emacs-lisp-mode) ("\\`\\..*emacs\\'" . emacs-lisp-mode) ("[:/]_emacs\\'" . emacs-lisp-mode) ("/crontab\\.X*[0-9]+\\'" . shell-script-mode) ("\\.ml\\'" . lisp-mode) ("\\.asd\\'" . lisp-mode) ("\\.\\(asn\\|mib\\|smi\\)\\'" . snmp-mode) ("\\.\\(as\\|mi\\|sm\\)2\\'" . snmpv2-mode) ("\\.\\(diffs?\\|patch\\|rej\\)\\'" . diff-mode) ("\\.\\(dif\\|pat\\)\\'" . diff-mode) ("\\.[eE]?[pP][sS]\\'" . ps-mode) ("configure\\.\\(ac\\|in\\)\\'" . autoconf-mode) ("BROWSE\\'" . ebrowse-tree-mode) ("\\.ebrowse\\'" . ebrowse-tree-mode) ("#\\*mail\\*" . mail-mode) ("\\.g\\'" . antlr-mode) ("\\.ses\\'" . ses-mode) ("\\.\\(soa\\|zone\\)\\'" . dns-mode) ("\\.docbook\\'" . sgml-mode) ("\\.com\\'" . dcl-mode) ("/config\\.\\(?:bat\\|log\\)\\'" . fundamental-mode) ("\\.\\(?:[iI][nN][iI]\\|[lL][sS][tT]\\|[rR][eE][gG]\\|[sS][yY][sS]\\)\\'" . conf-mode) ("\\.\\(?:desktop\\|la\\)\\'" . conf-unix-mode) ("\\.ppd\\'" . conf-ppd-mode) ("java.+\\.conf\\'" . conf-javaprop-mode) ("\\.properties\\(?:\\.[a-zA-Z0-9._-]+\\)?\\'" . conf-javaprop-mode) ("[/.]c\\(?:on\\)?f\\(?:i?g\\)?\\(?:\\.[a-zA-Z0-9._-]+\\)?\\'" . conf-mode-maybe) ("\\`/etc/\\(?:DIR_COLORS\\|ethers\\|.?fstab\\|.*hosts\\|lesskey\\|login\\.?de\\(?:fs\\|vperm\\)\\|magic\\|mtab\\|pam\\.d/.*\\|permissions\\(?:\\.d/.+\\)?\\|protocols\\|rpc\\|services\\)\\'" . conf-space-mode) ("\\`/etc/\\(?:acpid?/.+\\|aliases\\(?:\\.d/.+\\)?\\|default/.+\\|group-?\\|hosts\\..+\\|inittab\\|ksysguarddrc\\|opera6rc\\|passwd-?\\|shadow-?\\|sysconfig/.+\\)\\'" . conf-mode) ("[cC]hange[lL]og[-.][-0-9a-z]+\\'" . change-log-mode) ("/\\.?\\(?:gnokiirc\\|kde.*rc\\|mime\\.types\\|wgetrc\\)\\'" . conf-mode) ("/\\.\\(?:enigma\\|gltron\\|gtk\\|hxplayer\\|net\\|neverball\\|qt/.+\\|realplayer\\|scummvm\\|sversion\\|sylpheed/.+\\|xmp\\)rc\\'" . conf-mode) ("/\\.\\(?:gdbtkinit\\|grip\\|orbital/.+txt\\|rhosts\\|tuxracer/options\\)\\'" . conf-mode) ("/\\.?X\\(?:default\\|resource\\|re\\)s\\>" . conf-xdefaults-mode) ("/X11.+app-defaults/" . conf-xdefaults-mode) ("/X11.+locale/.+/Compose\\'" . conf-colon-mode) ("/X11.+locale/compose\\.dir\\'" . conf-javaprop-mode) ("\\.[1-9]\\'" . nroff-mode) ("\\.tgz\\'" . tar-mode) ("\\.tbz\\'" . tar-mode)) c++-mode-hook '(semantic-default-c-setup) c-mode-common-hook nil c-mode-hook '(semantic-default-c-setup) compilation-mode-hook nil compilation-window-height nil ediff-quit-hook '(ediff-cleanup-mess ecb-ediff-quit-hook) help-mode-hook nil java-mode-hook '(wisent-java-default-setup) max-lisp-eval-depth 1000 max-specpdl-size 3000 post-command-hook '(global-font-lock-mode-check-buffers mode-local-post-major-mode-change nxhtml-global-minor-mode-check-buffers ecb-handle-major-mode-visibilty ecb-layout-post-command-hook) pre-command-hook '(ecb-layout-pre-command-hook tooltip-hide) system-type 'windows-nt temp-buffer-max-height '(lambda (buffer) (/ (- (frame-height) 2) 2)) truncate-lines nil truncate-partial-width-windows t window-system 'w32 semantic-after-partial-cache-change-hook '(semanticdb-partial-synchronize-table ecb-update-after-partial-reparse) semantic-after-toplevel-cache-change-hook '(semanticdb-synchronize-table ecb-rebuild-methods-buffer-with-tagcache) semantic-format-face-alist '((function . font-lock-function-name-face) (variable . font-lock-variable-name-face) (type . font-lock-type-face) (include . font-lock-constant-face) (package . font-lock-constant-face) (label . font-lock-string-face) (comment . font-lock-comment-face) (keyword . font-lock-keyword-face) (abstract . italic) (static . underline) (documentation . font-lock-doc-face)) semantic-orphaned-member-metaparent-type "class" semantic-uml-colon-string " : " speedbar-dynamic-tags-function-list '((semantic-sb-fetch-tag-table . semantic-sb-insert-tag-table) (speedbar-fetch-dynamic-imenu . speedbar-insert-imenu-list) (speedbar-fetch-dynamic-etags . speedbar-insert-etags-list)) speedbar-fetch-etags-arguments '("-D" "-I" "-o" "-") speedbar-fetch-etags-command "etags" speedbar-fetch-etags-parse-list '(("\\.\\([cChH]\\|c\\+\\+\\|cpp\\|cc\\|hh\\|java\\|cxx\\|hxx\\)\\'" . speedbar-parse-c-or-c++tag) ("^\\.emacs$\\|.\\(el\\|l\\|lsp\\)\\'" . "def[^i]+\\s-+\\(\\(\\w\\|[-_]\\)+\\)\\s-*") ("\\.tex\\'" . speedbar-parse-tex-string) ("\\.p\\'" . "\\(\\(FUNCTION\\|function\\|PROCEDURE\\|procedure\\)\\s-+\\([a-zA-Z0-9_.:]+\\)\\)\\s-*(?^?") ) speedbar-tag-group-name-minimum-length 4 speedbar-tag-hierarchy-method '(speedbar-prefix-group-tag-hierarchy speedbar-trim-words-tag-hierarchy) speedbar-tag-regroup-maximum-length 10 speedbar-tag-split-minimum-length 20 ecb-adviced-function-sets '((ecb-compatibility-advices) (ecb-winman-not-supported-function-advices) (ecb-winman-winring-adviced-functions) (ecb-winman-escreen-adviced-functions) (ecb-eshell-adviced-functions) (ecb-methods-browser-advices) (ecb-vc-advices) (ecb-permanent-adviced-layout-functions) (ecb-layout-basic-adviced-functions) (ecb-speedbar-adviced-functions) (ecb-always-disabled-advices)) ecb-adviced-functions '((view-mode-exit . around) (tmm-prompt . around) (scroll-all-function-all . around) (count-windows . around) (master-says . around) (electric-buffer-list . after) (electric-buffer-list . before) (electric-command-history . before) (Electric-pop-up-window . around) (one-window-p . around) (bs-show . before) (winner-undo . before) (winner-redo . before) (winner-mode . before) (winring-initialize . after) (winring-save-current-configuration . before) (winring-restore-configuration . before) (winring-duplicate-configuration . before) (winring-set-name . after) (escreen-save-current-screen-configuration . before) (eshell . around) (custom-save-all . around) (make-indirect-buffer . after) (vc-checkin . after) (clearcase-sync-from-disk . after) (set-window-configuration . after) (current-window-configuration . after) (balance-windows . around) (walk-windows . around) (other-window-for-scrolling . around) (switch-to-buffer . around) (switch-to-buffer-other-window . around) (split-window . around) (split-window . before) (split-window-vertically . around) (split-window-horizontally . around) (delete-other-windows . around) (delete-other-windows . before) (delete-window . around) (delete-window . before) (delete-windows-on . around) (other-window . around) (display-buffer . around) (get-lru-window . before) (get-largest-window . before) (pop-to-buffer . around) (resize-temp-buffer-window . around) (shrink-window-if-larger-than-buffer . around) (shrink-window . around) (enlarge-window . around) (mouse-drag-mode-line . around) (mouse-drag-vertical-line . around) (scroll-other-window . around) (compilation-set-window-height . around) (delete-frame . around) (dframe-select-attached-frame . after) (dframe-mouse-set-point . around) (speedbar-get-focus . around) (speedbar-frame-mode . around) (speedbar-click . around)) ecb-autocontrol/sync-fcn-register '((ecb-symboldef-buffer-sync . ecb-symboldef-buffer-name) (ecb-analyse-buffer-sync . ecb-analyse-buffer-name) (ecb-eshell-buffer-sync) (ecb-tag-sync . ecb-methods-buffer-name) (ecb-basic-buffer-sync) (ecb-repair-only-ecb-window-layout) (ecb-layout-post-command-hook) (ecb-layout-pre-command-hook) (ecb-handle-major-mode-visibilty) (ecb-compilation-buffer-list-changed-p) (ecb-speedbar-buffer-sync . ecb-speedbar-buffer-name) (ecb-stealthy-updates) (ecb-monitor-autocontrol-functions)) ecb-buffer-setfunction-registration '((" *ECB History*" . ecb-set-history-buffer) (" *ECB Methods*" . ecb-set-methods-buffer) (" *ECB Sources*" . ecb-set-sources-buffer) (" *ECB Directories*" . ecb-set-directories-buffer)) ecb-current-maximized-ecb-buffer-name nil ecb-edit-area-creators '((0 . split-window-vertically)) ecb-idle-timer-alist '((ecb-stealthy-updates . [nil 0 1 0 t ecb-stealthy-updates nil t]) (ecb-monitor-autocontrol-functions . [nil 0 1 0 t ecb-monitor-autocontrol-functions nil t]) (ecb-repair-only-ecb-window-layout . [t 0 0 500000 t ecb-repair-only-ecb-window-layout nil t]) (ecb-compilation-buffer-list-changed-p . [t 0 0 250000 t ecb-compilation-buffer-list-changed-p nil t]) (ecb-basic-buffer-sync . [t 0 0 250000 t ecb-basic-buffer-sync nil t]) (ecb-tag-sync . [t 0 0 250000 t ecb-tag-sync nil t])) ecb-last-window-config-before-deactivation nil ecb-minor-mode t ecb-path-selected-directory #("c:/Dwig/Scripts" 0 15 (help-echo "Mouse-2 toggles maximizing, mouse-3 displays a popup-menu")) ecb-path-selected-source nil ecb-post-command-hooks '(ecb-handle-major-mode-visibilty ecb-layout-post-command-hook) ecb-pre-command-hooks '(ecb-layout-pre-command-hook) ecb-special-ecb-buffers-of-current-layout '(" *ECB Directories*" " *ECB Sources*" " *ECB Methods*" " *ECB History*") ecb-stealthy-function-list '(ecb-stealthy-vc-check-in-directories-buf ecb-stealthy-vc-check-in-sources-buf ecb-stealthy-vc-check-in-history-buf ecb-stealthy-ro-check-in-sources-buf ecb-stealthy-ro-check-in-directories-buf ecb-stealthy-empty-dir-check) ecb-stealthy-function-state-alist '((ecb-stealthy-vc-check-in-directories-buf . done) (ecb-stealthy-vc-check-in-sources-buf . done) (ecb-stealthy-vc-check-in-history-buf . done) (ecb-stealthy-ro-check-in-sources-buf . done) (ecb-stealthy-ro-check-in-directories-buf . done) (ecb-stealthy-empty-dir-check . done)) ecb-toggle-layout-state 0 ecb-tree-buffer-creators '((ecb-analyse-buffer-name . ecb-create-analyse-tree-buffer) (ecb-methods-buffer-name . ecb-create-methods-tree-buffer) (ecb-history-buffer-name . ecb-create-history-tree-buffer) (ecb-sources-buffer-name . ecb-create-sources-tree-buffer) (ecb-directories-buffer-name . ecb-create-directories-tree-buffer)) ecb-tree-buffers '((" *ECB Directories*" . ecb-directories-buffer-name) (" *ECB Sources*" . ecb-sources-buffer-name) (" *ECB History*" . ecb-history-buffer-name) (" *ECB Methods*" . ecb-methods-buffer-name) (" *ECB Analyse*" . ecb-analyse-buffer-name)) ecb-windows-hidden nil ecb-activate-before-layout-draw-hook nil ecb-activate-before-new-frame-created-hook nil ecb-activate-hook '(ecb-eshell-auto-activate-hook) ecb-activation-selects-ecb-frame-if-already-active 'ask ecb-add-path-for-not-matching-files '(t) ecb-advice-window-functions-signal-error nil ecb-after-directory-change-hook nil ecb-analyse-bucket-element-face 'ecb-analyse-bucket-element-face ecb-analyse-bucket-node-face 'ecb-analyse-bucket-node-face ecb-analyse-buffer-after-create-hook nil ecb-analyse-buffer-name " *ECB Analyse*" ecb-analyse-buffer-sync 'basic ecb-analyse-buffer-sync-delay 2 ecb-analyse-buffer-sync-hook nil ecb-analyse-collapsed-buckets nil ecb-analyse-face 'ecb-default-highlight-face ecb-analyse-fontified-buckets '("Context" "Function") ecb-analyse-gen-tag-info-fn nil ecb-analyse-general-face 'ecb-default-general-face ecb-analyse-show-node-info '(if-too-long . name) ecb-analyse-show-tag-info-fn 'message ecb-auto-activate nil ecb-auto-compatibility-check t ecb-auto-expand-directory-tree 'best ecb-auto-expand-tag-tree 'expand-spec ecb-auto-expand-tag-tree-collapse-other nil ecb-auto-save-before-etags-methods-rebuild t ecb-auto-update-methods-after-save t ecb-basic-buffer-sync '(Info-mode dired-mode) ecb-basic-buffer-sync-delay 0.25 ecb-basic-buffer-sync-hook nil ecb-before-activate-hook nil ecb-before-deactivate-hook nil ecb-bucket-node-display '("" "" ecb-bucket-node-face) ecb-cache-directory-contents '(("^/\\([^:/]*@\\)?\\([^@:/]*\\):.*" . 0) (".*" . 50)) ecb-cache-directory-contents-not nil ecb-change-layout-preserves-compwin-state t ecb-clear-caches-before-activate nil ecb-common-tree-buffer-after-create-hook nil ecb-compilation-buffer-names '(("*Calculator*") ("*vc*") ("*vc-diff*") ("*Apropos*") ("*Occur*") ("*shell*") ("\\*[cC]ompilation.*\\*" . t) ("\\*i?grep.*\\*" . t) ("*JDEE Compile Server*") ("*Help*") ("*Completions*") ("*Backtrace*") ("*Compile-log*") ("*bsh*") ("*Messages*")) ecb-compilation-major-modes '(compilation-mode) ecb-compilation-predicates '(comint-check-proc) ecb-compile-window-height nil ecb-compile-window-prevent-shrink-below-height t ecb-compile-window-temporally-enlarge 'after-display ecb-compile-window-width 'frame ecb-create-layout-file "~/.ecb-user-layouts.el" ecb-create-layout-frame-height 42 ecb-create-layout-frame-width 110 ecb-deactivate-hook nil ecb-debug-mode nil ecb-default-tag-filter nil ecb-directories-buffer-after-create-hook nil ecb-directories-buffer-name " *ECB Directories*" ecb-directories-general-face 'ecb-default-general-face ecb-directories-menu-sorter nil ecb-directories-menu-user-extension '(("Version Control" (ecb-dir-popup-cvs-status "CVS Status") (ecb-dir-popup-cvs-examine "CVS Examine") (ecb-dir-popup-cvs-update "CVS Update")) ) ecb-directories-menu-user-extension-function 'ignore ecb-directories-show-node-info '(if-too-long . path) ecb-directories-update-speedbar 'auto ecb-directory-face 'ecb-default-highlight-face ecb-directory-not-accessible-face 'ecb-directory-not-accessible-face ecb-display-default-dir-after-start t ecb-display-image-icons-for-semantic-tags t ecb-enlarged-compilation-window-max-height 'best ecb-eshell-auto-activate nil ecb-eshell-buffer-sync 'basic ecb-eshell-buffer-sync-delay 'basic ecb-eshell-enlarge-when-eshell t ecb-eshell-fit-window-to-command-output t ecb-exclude-parents-regexps nil ecb-excluded-directories-regexps '("^\\(CVS\\|\\.[^xX]*\\)$") ecb-expand-methods-switch-off-auto-expand t ecb-find-external-tag-functions '((default ecb-search-tag-by-semantic-analyzer) (jde-mode ecb-jde-show-class-source)) ecb-fix-window-size nil ecb-font-lock-tags t ecb-force-reparse-when-semantic-idle-scheduler-off nil ecb-grep-function 'lgrep ecb-grep-recursive-function 'rgrep ecb-help-html-path "./html-help/ecb.html" ecb-help-info-path "./info-help/ecb.info" ecb-hide-ecb-windows-after-hook nil ecb-hide-ecb-windows-before-hook nil ecb-highlight-tag-with-point 'highlight-scroll ecb-highlight-tag-with-point-delay 0.25 ecb-history-bucket-node-face 'ecb-history-bucket-node-face ecb-history-buffer-after-create-hook nil ecb-history-buffer-name " *ECB History*" ecb-history-dead-buffer-face 'ecb-history-dead-buffer-face ecb-history-exclude-file-regexps '("TAGS$" "semantic\\.cache$") ecb-history-face 'ecb-default-highlight-face ecb-history-general-face 'ecb-default-general-face ecb-history-indirect-buffer-face 'ecb-history-indirect-buffer-face ecb-history-make-buckets 'directory ecb-history-menu-sorter nil ecb-history-menu-user-extension '(("Version control" (ecb-file-popup-ediff-revision "Ediff against revision") ("---") (ecb-file-popup-vc-next-action "Check In/Out") (ecb-file-popup-vc-log "Revision history") (ecb-file-popup-vc-annotate "Annotate") (ecb-file-popup-vc-diff "Diff against last version") ("---") (ecb-file-popup-vc-refresh-file "Recompute state for file") (ecb-file-popup-vc-refresh-all-files "Recompute state for whole history")) ) ecb-history-menu-user-extension-function 'ignore ecb-history-show-node-info '(always . name-path) ecb-history-sort-ignore-case t ecb-history-sort-method 'name ecb-history-stick-indirect-buffers-to-basebuffer t ecb-host-accessible-check-valid-time nil ecb-ignore-display-buffer-function 'always ecb-ignore-pop-up-frames 'compile-window ecb-ignore-special-display 'compile-window ecb-jde-set-directories-buffer-to-jde-sourcepath nil ecb-key-map '("C-c ." (t "fh" ecb-history-filter) (t "fs" ecb-sources-filter) (t "fm" ecb-methods-filter) (t "fr" ecb-methods-filter-regexp) (t "ft" ecb-methods-filter-tagclass) (t "fc" ecb-methods-filter-current-type) (t "fp" ecb-methods-filter-protection) (t "fn" ecb-methods-filter-nofilter) (t "fl" ecb-methods-filter-delete-last) (t "ff" ecb-methods-filter-function) (t "p" ecb-nav-goto-previous) (t "n" ecb-nav-goto-next) (t "lc" ecb-change-layout) (t "lr" ecb-redraw-layout) (t "lw" ecb-toggle-ecb-windows) (t "lt" ecb-toggle-layout) (t "s" ecb-window-sync) (t "r" ecb-rebuild-methods-buffer) (t "a" ecb-toggle-auto-expand-tag-tree) (t "x" ecb-expand-methods-nodes) (t "h" ecb-show-help) (t "gl" ecb-goto-window-edit-last) (t "g1" ecb-goto-window-edit1) (t "g2" ecb-goto-window-edit2) (t "gc" ecb-goto-window-compilation) (t "gd" ecb-goto-window-directories) (t "gs" ecb-goto-window-sources) (t "gm" ecb-goto-window-methods) (t "gh" ecb-goto-window-history) (t "ga" ecb-goto-window-analyse) (t "gb" ecb-goto-window-speedbar) (t "md" ecb-maximize-window-directories) (t "ms" ecb-maximize-window-sources) (t "mm" ecb-maximize-window-methods) (t "mh" ecb-maximize-window-history) (t "ma" ecb-maximize-window-analyse) (t "mb" ecb-maximize-window-speedbar) (t "e" eshell) (t "o" ecb-toggle-scroll-other-window-scrolls-compile) (t "\\" ecb-toggle-compile-window) (t "/" ecb-toggle-compile-window-height) (t "," ecb-cycle-maximized-ecb-buffers) (t "." ecb-cycle-through-compilation-buffers)) ecb-kill-buffer-clears-history nil ecb-layout-always-operate-in-edit-window '(switch-to-buffer) ecb-layout-debug-mode nil ecb-layout-name "left8" ecb-layout-window-sizes '(("left8" (0.327683615819209 . 0.05263157894736842) (0.327683615819209 . 0.07894736842105263) (0.327683615819209 . 0.8026315789473685) (0.327683615819209 . 0.05263157894736842)) ) ecb-major-modes-show-or-hide '(nil) ecb-maximize-ecb-window-after-selection nil ecb-maximize-next-after-maximized-select nil ecb-method-face 'ecb-default-highlight-face ecb-method-non-semantic-face 'speedbar-tag-face ecb-methods-buffer-after-create-hook nil ecb-methods-buffer-name " *ECB Methods*" ecb-methods-filter-replace-existing 'never ecb-methods-general-face 'ecb-default-general-face ecb-methods-menu-sorter nil ecb-methods-menu-user-extension nil ecb-methods-menu-user-extension-function 'ignore ecb-methods-nodes-collapse-spec 'all ecb-methods-nodes-expand-spec '(type variable function section nonterminal keyword token) ecb-methods-separate-prototypes t ecb-methods-show-node-info '(if-too-long . name+type) ecb-minor-mode-text "" ecb-mode-line-data '((ecb-directories-buffer-name . sel-dir) (ecb-sources-buffer-name . sel-dir) (ecb-methods-buffer-name . sel-source) (ecb-analyse-buffer-name . sel-source) (ecb-history-buffer-name . #("History" 0 7 (help-echo "Mouse-2 toggles maximizing, mouse-3 displays a popup-menu"))) ) ecb-mode-line-data-face 'ecb-mode-line-data-face ecb-mode-line-display-window-number t ecb-mode-line-prefix-face 'ecb-mode-line-prefix-face ecb-mode-line-prefixes '((ecb-directories-buffer-name) (ecb-sources-buffer-name . ecb-sources-filter-modeline-prefix) (ecb-methods-buffer-name . ecb-methods-filter-modeline-prefix) (ecb-history-buffer-name . ecb-history-filter-modeline-prefix)) ecb-mode-line-win-nr-face 'ecb-mode-line-win-nr-face ecb-mouse-click-destination 'last-point ecb-new-ecb-frame nil ecb-non-semantic-exclude-modes '(sh-mode fundamental-mode text-mode) ecb-non-semantic-methods-initial-expand nil ecb-non-semantic-parsing-function nil ecb-options-version "2.40" ecb-other-window-behavior 'smart ecb-ping-options '("-n" "2" "HOST") ecb-ping-program "ping" ecb-post-process-semantic-taglist '((c++-mode ecb-group-function-tags-with-parents) (emacs-lisp-mode ecb-group-function-tags-with-parents) (c-mode ecb-filter-c-prototype-tags)) ecb-prescan-directories-exclude-regexps nil ecb-prescan-directories-for-emptyness 'unless-remote ecb-primary-secondary-mouse-buttons 'mouse-2--C-mouse-2 ecb-process-non-semantic-files t ecb-read-only-check-exclude-regexps nil ecb-rebuild-non-semantic-methods-before-hook nil ecb-redraw-layout-after-hook '(ecb-eshell-recenter) ecb-redraw-layout-before-hook nil ecb-redraw-layout-quickly nil ecb-run-ediff-in-ecb-frame t ecb-scroll-other-window-scrolls-compile-window nil ecb-select-edit-window-on-redraw nil ecb-show-ecb-windows-after-hook nil ecb-show-ecb-windows-before-hook nil ecb-show-help-format 'info ecb-show-only-positioned-tags nil ecb-show-source-file-extension t ecb-show-sources-in-directories-buffer '("left7" "left13" "left14" "left15") ecb-show-tags '((default (include collapsed nil) (parent collapsed nil) (type flattened nil) (variable collapsed access) (function flattened access) (label hidden nil) (t collapsed nil)) (c++-mode (include collapsed nil) (parent collapsed nil) (type flattened nil) (variable collapsed access) (function flattened access) (function collapsed access) (label hidden nil) (t collapsed nil)) (c-mode (include collapsed nil) (parent collapsed nil) (type flattened nil) (variable collapsed access) (function flattened access) (function collapsed access) (label hidden nil) (t collapsed nil)) (bovine-grammar-mode (keyword collapsed name) (token collapsed name) (nonterminal flattened name) (rule flattened name) (t collapsed nil)) (wisent-grammar-mode (keyword collapsed name) (token collapsed name) (nonterminal flattened name) (rule flattened name) (t collapsed nil)) (texinfo-mode (section flattened nil) (def collapsed name) (t collapsed nil))) ecb-source-face 'ecb-default-highlight-face ecb-source-file-regexps '((".*" ("\\(^\\(\\.\\|#\\)\\|\\(~$\\|\\.\\(elc\\|obj\\|o\\|class\\|lib\\|dll\\|a\\|so\\|cache\\)$\\)\\)") ("^\\.\\(emacs\\|gnus\\)$")) ) ecb-source-in-directories-buffer-face 'ecb-source-in-directories-buffer-face ecb-source-path '("C:\\Dwig\\Falcon\\Development\\Client" "C:\\Dwig\\Falcon\\Development\\Online" "C:\\Dwig\\Projects" "C:\\Dwig\\Falcon\\Development\\StandardDatabase\\DBSetup") ecb-source-read-only-face 'ecb-source-read-only-face ecb-sources-buffer-after-create-hook nil ecb-sources-buffer-name " *ECB Sources*" ecb-sources-exclude-cvsignore nil ecb-sources-general-face 'ecb-default-general-face ecb-sources-menu-sorter nil ecb-sources-menu-user-extension '(("Version control" (ecb-file-popup-ediff-revision "Ediff against revision") ("---") (ecb-file-popup-vc-next-action "Check In/Out") (ecb-file-popup-vc-log "Revision history") (ecb-file-popup-vc-annotate "Annotate") (ecb-file-popup-vc-diff "Diff against last version") ("---") (ecb-file-popup-vc-refresh-file "Recompute state for file") (ecb-file-popup-vc-refresh-dir "Recompute state for whole dir")) ) ecb-sources-menu-user-extension-function 'ignore ecb-sources-perform-read-only-check 'unless-remote ecb-sources-show-node-info '(if-too-long . name) ecb-sources-sort-ignore-case t ecb-sources-sort-method 'name ecb-speedbar-before-activate-hook nil ecb-speedbar-buffer-sync 'basic ecb-speedbar-buffer-sync-delay 'basic ecb-speedbar-buffer-sync-hook nil ecb-split-edit-window-after-start 'before-deactivation ecb-stealthy-tasks-delay 1 ecb-symboldef-buffer-name " *ECB Symboldefinition*" ecb-symboldef-buffer-sync 'basic ecb-symboldef-buffer-sync-delay 'basic ecb-symboldef-buffer-sync-hook nil ecb-symboldef-find-functions '((lisp-interaction-mode . ecb-symboldef-find-lisp-doc) (lisp-mode . ecb-symboldef-find-lisp-doc) (emacs-lisp-mode . ecb-symboldef-find-lisp-doc) (default . ecb-symboldef-find-definition)) ecb-tag-display-function '((default . ecb-format-tag-uml-prototype)) ecb-tag-header-face 'ecb-tag-header-face ecb-tag-jump-sets-mark t ecb-tag-visit-post-actions '((default ecb-tag-visit-smart-tag-start ecb-tag-visit-highlight-tag-header) (java-mode ecb-tag-visit-goto-doc-start) (jde-mode ecb-tag-visit-goto-doc-start)) ecb-tip-of-the-day t ecb-tip-of-the-day-file "~/.ecb-tip-of-day.el" ecb-toggle-layout-sequence '("left9" "left14") ecb-tree-buffer-style 'image ecb-tree-do-not-leave-window-after-select nil ecb-tree-easy-hor-scroll 5 ecb-tree-expand-symbol-before t ecb-tree-guide-line-face 'ecb-tree-guide-line-face ecb-tree-image-icons-directories '("c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/ecb-2.40/ecb-images/default/height-17" (ecb-directories-buffer-name . "c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/ecb-2.40/ecb-images/directories/height-17") (ecb-sources-buffer-name . "c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/ecb-2.40/ecb-images/sources/height-14_to_21") (ecb-methods-buffer-name . "c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/ecb-2.40/ecb-images/methods/height-14_to_21") ) ecb-tree-incremental-search 'prefix ecb-tree-indent 4 ecb-tree-make-parent-node-sticky t ecb-tree-mouse-action-trigger 'button-release ecb-tree-navigation-by-arrow t ecb-tree-stickynode-indent-string " " ecb-tree-truncate-lines '(ecb-directories-buffer-name ecb-sources-buffer-name ecb-methods-buffer-name ecb-history-buffer-name ecb-analyse-buffer-name) ecb-truncate-long-names t ecb-type-tag-display nil ecb-type-tag-expansion '((default "class" "interface" "group" "namespace") (c-mode "struct")) ecb-use-recursive-edit nil ecb-use-speedbar-instead-native-tree-buffer nil ecb-vc-directory-exclude-regexps nil ecb-vc-enable-support nil ecb-vc-state-mapping '((up-to-date . up-to-date) (edited . edited) (locally-modified . edited) (needs-patch . needs-patch) (needs-checkout . needs-patch) (needs-merge . needs-merge) (unlocked-changes . unlocked-changes) (added . added) (locally-added . added) (ignored . ignored) (unknown . unknown)) ecb-vc-supported-backends nil ecb-version-check t ecb-windows-height 0.33 ecb-windows-width 0.33 ecb-winman-escreen-number 1 ecb-winman-winring-name "ECB" ) ----------------------------------------------------- The attributes of the ECB-faces are: ecb-mode-line-data-face: nil ecb-mode-line-prefix-face: (:foreground forestgreen) ecb-mode-line-win-nr-face: (:weight bold) ecb-bucket-node-face: (:inherit ecb-default-general-face :weight bold) ecb-type-tag-group-face: (:foreground dim gray :weight bold) ecb-type-tag-enum-face: (:weight bold) ecb-type-tag-union-face: (:weight bold) ecb-type-tag-typedef-face: (:weight bold) ecb-type-tag-struct-face: (:weight bold) ecb-type-tag-interface-face: (:weight bold) ecb-type-tag-class-face: (:weight bold) ecb-directory-not-accessible-face: (:inherit ecb-directories-general-face :foreground gray60) ecb-source-read-only-face: (:inherit ecb-default-general-face :slant italic) ecb-source-in-directories-buffer-face: (:inherit ecb-directories-general-face :foreground medium blue) ecb-tag-header-face: (:background SeaGreen1) ecb-analyse-bucket-node-face: (:inherit ecb-bucket-node-face :weight bold) ecb-analyse-bucket-element-face: (:inherit ecb-analyse-general-face :foreground brown) ecb-analyse-general-face: (:inherit ecb-default-general-face :height 1.0) ecb-analyse-face: (:inherit ecb-default-highlight-face :background cornflower blue :foreground yellow) ecb-history-face: (:inherit ecb-default-highlight-face :background cornflower blue :foreground yellow) ecb-method-non-semantic-face: (:inherit ecb-methods-general-face :foreground brown) ecb-method-face: (:inherit ecb-default-highlight-face :background cornflower blue :foreground yellow) ecb-source-face: (:inherit ecb-default-highlight-face :background cornflower blue :foreground yellow) ecb-directory-face: (:inherit ecb-default-highlight-face :background cornflower blue :foreground yellow) ecb-default-highlight-face: (:background cornflower blue :foreground yellow) ecb-history-dead-buffer-face: (:inherit ecb-history-general-face :foreground gray60) ecb-history-indirect-buffer-face: (:inherit ecb-history-general-face :slant italic) ecb-history-bucket-node-face: (:inherit ecb-bucket-node-face) ecb-history-general-face: (:inherit ecb-default-general-face :height 1.0) ecb-methods-general-face: (:inherit ecb-default-general-face :height 1.0) ecb-sources-general-face: (:inherit ecb-default-general-face :height 1.0) ecb-directories-general-face: (:inherit ecb-default-general-face :height 1.0) ecb-tree-guide-line-face: (:inherit ecb-default-general-face :foreground grey :height 1.0) ecb-default-general-face: (:height 1.0) ----------------------------------------------------- ----------------------------------------------------- There was no *ecb-tag-dump* buffer ----------------------------------------------------- ----------------------------------------------------- There was no *Backtrace* buffer ----------------------------------------------------- ----------------------------------------------------- The contents of the *Messages* buffer were ("C:\\ProgramFiles\\Emacs\\emacs-22.3\\bin\\emacs.exe") Loading encoded-kb...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/cedet-1.0pre6/common/cedet.el (source)... Loading cl-macs...done Loading byte-opt...done Setting up CEDET packages... Loading derived...done Loading cl-seq...done Loading ede-speedbar...done Setting up CEDET packages...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/cedet-1.0pre6/common/cedet.el (source)...done Loading semantic-idle...done Loading semanticdb-mode...done Loading semantic-mru-bookmark... Loading ring...done Loading semantic-mru-bookmark...done Loading senator...done Loading avoid...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxml-mode-20041004/rng-auto.el (source)...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/autostart.el (source)... Nxml/Nxhtml Autostart.el loading ... Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/nxhtml-loaddefs.el (source)...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/nxhtml/nxhtml-menu.el (source)... Loading regexp-opt...done Loading dired-x...done Loading easy-mmode...done Loading url-methods...done html-site-current (information): No current site set !! File mumamo uses old-style backquotes !! Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/nxhtml/nxhtml-menu.el (source)...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/autostart22.el (source)... Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxml-mode-20041004/rng-auto.el (source)...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/autostart22.el (source)...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/etc/schema/schema-path-patch.el (source)...done xhtml-loader.rnc was ok (No changes need to be saved) Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/nxhtml/nxhtml-autoload.el (source)... nxhtml-autoload starting ... (hm, should maybe be renamed ...) majmodpri-sort-lists running ... nxhtml-autoload finished Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/nxhtml/nxhtml-autoload.el (source)...done === Loaded at nxhtml/autostart.el end: (feature 'html-imenu)=t (feature 'html-quote)=t (feature 'html-site)=t (feature 'html-upl)=t (feature 'mumamo)=t (feature 'nxhtml-menu)=t (feature 'nxhtml-mode)=t (feature 'rngalt)=t (feature 'tidy-xhtml)=t Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/autostart.el (source)...done Loading utf-16...done Package rsz-mini is obsolete Loading server...done Loading semantic-el...done For information about GNU Emacs and the GNU system, type C-h C-a. Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/ecb-2.40/ecb.el (source)... ECB 2.40 uses CEDET 1.0pre6 (contains semantic 2.0pre6, eieio 1.2, speedbar 1.0.2). Loading edmacro...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/ecb-2.40/ecb.el (source)...done All requirements for ECB 2.40 fulfilled - Enjoy it! Loading cl-extra...done The ECB is now activated. There are no NEWS to display. Loading c:/Unix/.ecb-tip-of-day.el (source)...done Making completion list... Loading eieio-opt...done Preparing problem report... Loading sendmail...done Formatting bug report buffer...................................... End Insert *Messages* buffer ----------------------------------------------------- ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: ECB 2.40 released!Well, then it#s clear - seems that python is not supported by semantic (but AFAIK current semantic has a python parser?! Eric?)
But if (semantic-active-p) is nil then semantic is not active... What is the value of python-mode-hook in your setup?? Background: when semantic is not active then ECB can only uses etags or imenu-parser for the contents which is much much much less powerful then semantic-parser - with non-semantic-sources content display is quite rough in ECB because these parsers (etags and imenu) can not supply what ECB needs .... This is the reason for your expanding/collapsing problem... So, here my recipe: Activate the semantic-python-parser for your code and bob will be your uncle ;-) Klaus -----Ursprüngliche Nachricht----- Von: Don Dwiggins [mailto:ddwiggins@...] Gesendet: Dienstag, 19. Mai 2009 18:26 An: ecb-list@... Betreff: Re: [ECB-list] ECB 2.40 released! klaus.berndl@... wrote: > 1. please always send a problem-report with the command > `ecb-submit-problem-report' - this includes all informations i need Thanks for the reply; here 'tis: --------------------------------------- Please enter the details of your bug report here: When I first load a Python file (or JS file, or...) after activating, the methods buffer is empty. I can get it to fill in the methods by doing M-x python-mode (which is redundant, the mode is already set in the buffer), or by setting the scratch buffer to python-mode before loading the file. (I also ran into this problem earlier using ECB 2.32 with CEDET 1.0pre4.) Answering your questions: 2. is semantic enables in your python-buffers (what does (semantic-active-p) return if you call this with M-:)? It returns nil 3. Is semantic-idle-scheduler-mode active in your buffer? I don't think so; in fact, the Senator menu item doesn't show up until I invoke python-mode. 4. What happens if you co not call pythom-mode but [C-c . r] or even [C-u][C-c . r]? Nothing. One other thing: when I invoked python-mode, I noticed the following in the Messages buffer: Cache Error: [c:/Unix/.semanticdb/!drive_c!Dwig!Falcon!Development!Online!RCAServer!semantic.cache] (invalid-read-syntax . in wrong context), Restart [2 times] ... but it didn't seem to hurt anything. 5. Collapsing: Hmm, maybe you should build up a small example file which you send to me and a step-by-step sceanrio what i must do, to reproduce the behavior (beginning with 1. Start Emacs, 2. activate ECB...!) OK: 1) paste the following into a file: ------------------------------- class foo: def __init__(self): pass def foo1(self): pass def foo2(self): pass class bar: def __init__(self): pass def bar1(self): pass def bar2(self): pass ------------------------------- 2) start Emacs, 3) activate ECB 4) load the file 5) do what you must to populate the methods buffer ;^) 6) in the methods buffer, collapse the "foo" class 7) move the cursor to the bottom of the file, hit Return ... at this point, after a short delay, I see "foo" expand. (In fact, any change to the file will make it happen.) Emacs : GNU Emacs 22.3.1 (i386-mingw-nt5.1.2600) of 2008-09-06 on SOFT-MJASON Package: ECB: 2.40, CEDET: 1.0pre6, semantic: 2.0pre6, eieio: 1.2, speedbar: 1.0.2, JDEE: No JDEE ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: ECB 2.40 released!Hi,
Attached you find a screenshot of my ECB 2.40 with Emacs 22.3 - all is working fine with python and "python-semantic" is also enabled ... Then your collapsing also works well - as with all semantic-supported sources... BUT: semes that the auto-loading stuff is somehow broken for python in my Emacs... At least for my this works only when i explicitly load the library python.el, e.g. by (require 'python) in my .emacs... But then all is fine and ECB works smoothly with python-codes... Does this help? Klaus -----Ursprüngliche Nachricht----- Von: Don Dwiggins [mailto:ddwiggins@...] Gesendet: Dienstag, 19. Mai 2009 18:26 An: ecb-list@... Betreff: Re: [ECB-list] ECB 2.40 released! klaus.berndl@... wrote: > 1. please always send a problem-report with the command > `ecb-submit-problem-report' - this includes all informations i need Thanks for the reply; here 'tis: --------------------------------------- Please enter the details of your bug report here: When I first load a Python file (or JS file, or...) after activating, the methods buffer is empty. I can get it to fill in the methods by doing M-x python-mode (which is redundant, the mode is already set in the buffer), or by setting the scratch buffer to python-mode before loading the file. (I also ran into this problem earlier using ECB 2.32 with CEDET 1.0pre4.) Answering your questions: 2. is semantic enables in your python-buffers (what does (semantic-active-p) return if you call this with M-:)? It returns nil 3. Is semantic-idle-scheduler-mode active in your buffer? I don't think so; in fact, the Senator menu item doesn't show up until I invoke python-mode. 4. What happens if you co not call pythom-mode but [C-c . r] or even [C-u][C-c . r]? Nothing. One other thing: when I invoked python-mode, I noticed the following in the Messages buffer: Cache Error: [c:/Unix/.semanticdb/!drive_c!Dwig!Falcon!Development!Online!RCAServer!semantic.cache] (invalid-read-syntax . in wrong context), Restart [2 times] ... but it didn't seem to hurt anything. 5. Collapsing: Hmm, maybe you should build up a small example file which you send to me and a step-by-step sceanrio what i must do, to reproduce the behavior (beginning with 1. Start Emacs, 2. activate ECB...!) OK: 1) paste the following into a file: ------------------------------- class foo: def __init__(self): pass def foo1(self): pass def foo2(self): pass class bar: def __init__(self): pass def bar1(self): pass def bar2(self): pass ------------------------------- 2) start Emacs, 3) activate ECB 4) load the file 5) do what you must to populate the methods buffer ;^) 6) in the methods buffer, collapse the "foo" class 7) move the cursor to the bottom of the file, hit Return ... at this point, after a short delay, I see "foo" expand. (In fact, any change to the file will make it happen.) Emacs : GNU Emacs 22.3.1 (i386-mingw-nt5.1.2600) of 2008-09-06 on SOFT-MJASON Package: ECB: 2.40, CEDET: 1.0pre6, semantic: 2.0pre6, eieio: 1.2, speedbar: 1.0.2, JDEE: No JDEE current state: ============== (setq after-save-hook '(ecb-update-methods-after-saving) auto-mode-alist '(("\\.dz\\'" nil jka-compr) ("\\.g?z\\(~\\|\\.~[0-9]+~\\)?\\'" nil jka-compr) ("\\.bz2\\(~\\|\\.~[0-9]+~\\)?\\'" nil jka-compr) ("\\.Z\\(~\\|\\.~[0-9]+~\\)?\\'" nil jka-compr) ("\\.~?[0-9]+\\.[0-9][-.0-9]*~?\\'" nil t) ("\\.\\(?:orig\\|in\\|[bB][aA][kK]\\)\\'" nil t) ("\\.lzx\\'" . laszlo-nxml-mumamo-mode) ("\\.s?html?\\(\\.[a-zA-Z_]+\\)?\\'" . html-mumamo-mode) ("\\.x[ms]l\\'" . nxml-mode) ("\\.\\(xml\\|xsl\\|rng\\|xul\\|rdf\\)\\'" . nxml-mode) ("\\.xrc$" . nxml-mode) ("xml$" . nxml-mode) ("\\.rnc\\'" . rnc-mode) ("\\.js\\'" . javascript-mode) ("\\.ghtml\\'" . genshi-nxhtml-mumamo-mode) ("\\.epl\\'" . embperl-nxhtml-mumamo-mode) ("\\.phps\\'" . smarty-nxhtml-mumamo-mode) ("\\.erb\\'" . eruby-nxhtml-mumamo-mode) ("\\.rhtml\\'" . eruby-nxhtml-mumamo-mode) ("\\.djhtml\\'" . django-nxhtml-mumamo-mode) ("\\.asp\\'" . asp-nxhtml-mumamo-mode) ("\\.jsp\\'" . jsp-nxhtml-mumamo-mode) ("\\.phtml\\'" . nxhtml-mumamo-mode) ("\\.php\\'" . nxhtml-mumamo-mode) ("\\.xhtmlf\\'" . nxhtml-mumamo-mode) ("\\.htmlf\\'" . nxhtml-mumamo-mode) ("\\.xhtml\\'" . nxhtml-mumamo-mode) ("\\.xhtm\\'" . nxhtml-mumamo-mode) ("\\.html\\'" . nxhtml-mumamo-mode) ("\\.htm\\'" . nxhtml-mumamo-mode) ("\\.s?html?\\(\\.[a-zA-Z_]+\\)?\\'" . nxhtml-mumamo-mode) ("\\.s?html?\\(\\.[a-zA-Z_]+\\)?\\'" . nxhtml-mode) ("\\.gnus\\'" . emacs-lisp-mode) ("\\.pyw?$" . python-mode) ("\\.spec$" . python-mode) ("\\.nsi" . nsi-mode) ("\\.mai$" . mail-mode) ("\\.cls$" . visual-basic-mode) ("\\.bas$" . visual-basic-mode) ("\\.frm$" . visual-basic-mode) ("\\.\\(xhtml\\|html\\|asp\\|htm\\)" . nxhtml-mode) ("\\.tpl" . nxhtml-mumamo-mode) ("[^/]\\.dired$" . dired-virtual-mode) ("ProjStep\\.ede" . emacs-lisp-mode) ("Project\\.ede$" . emacs-lisp-mode) ("\\.srt$" . srecode-template-mode) ("\\.wy$" . wisent-grammar-mode) ("\\.by$" . bovine-grammar-mode) ("\\.vr[hi]?\\'" . vera-mode) ("\\.py\\'" . python-mode) ("\\.mixal\\'" . mixal-mode) ("\\.x[bdsru]?[cn]?\\'" . ld-script-mode) ("\\.ld[si]?\\>" . ld-script-mode) ("\\.x[bp]m\\'" . image-mode-maybe) ("\\.p[bpgn]m\\'" . image-mode) ("\\.tiff?\\'" . image-mode) ("\\.gif\\'" . image-mode) ("\\.png\\'" . image-mode) ("\\.jpe?g\\'" . image-mode) ("\\.[Pp][Rr][Oo]\\'" . idlwave-mode) ("/\\.[a-z0-9-]*gdbinit" . gdb-script-mode) ("\\.soa\\'" . dns-mode) ("\\.css\\'" . css-mode) ("\\.gcov\\'" . compilation-mode) ("\\.awk\\'" . awk-mode) ("\\.\\(u?lpc\\|pike\\|pmod\\(.in\\)?\\)\\'" . pike-mode) ("\\.idl\\'" . idl-mode) ("\\.java\\'" . java-mode) ("\\.m\\'" . objc-mode) ("\\.lex\\'" . c-mode) ("\\.y\\(acc\\)?\\'" . c-mode) ("\\.[ch]\\'" . c-mode) ("\\.\\(CC?\\|HH?\\)\\'" . c++-mode) ("\\.[ch]\\(pp\\|xx\\|\\+\\+\\)\\'" . c++-mode) ("\\.\\(cc\\|hh\\)\\'" . c++-mode) ("\\.bst\\'" . bibtex-style-mode) ("\\.s?html?\\(\\.[a-zA-Z_]+\\)?\\'" . html-mode) ("\\.te?xt\\'" . text-mode) ("\\.[tT]e[xX]\\'" . tex-mode) ("\\.ins\\'" . tex-mode) ("\\.ltx\\'" . latex-mode) ("\\.dtx\\'" . doctex-mode) ("\\.el\\'" . emacs-lisp-mode) ("\\.\\(scm\\|stk\\|ss\\|sch\\)\\'" . scheme-mode) ("\\.l\\'" . lisp-mode) ("\\.li?sp\\'" . lisp-mode) ("\\.[fF]\\'" . fortran-mode) ("\\.for\\'" . fortran-mode) ("\\.p\\'" . pascal-mode) ("\\.pas\\'" . pascal-mode) ("\\.ad[abs]\\'" . ada-mode) ("\\.ad[bs].dg\\'" . ada-mode) ("\\.\\([pP]\\([Llm]\\|erl\\|od\\)\\|al\\)\\'" . perl-mode) ("Imakefile\\'" . makefile-imake-mode) ("Makeppfile\\(?:\\.mk\\)?\\'" . makefile-makepp-mode) ("\\.makepp\\'" . makefile-makepp-mode) ("\\.mk\\'" . makefile-gmake-mode) ("[Mm]akefile\\'" . makefile-gmake-mode) ("\\.am\\'" . makefile-automake-mode) ("\\.texinfo\\'" . texinfo-mode) ("\\.te?xi\\'" . texinfo-mode) ("\\.[sS]\\'" . asm-mode) ("\\.asm\\'" . asm-mode) ("[cC]hange\\.?[lL]og?\\'" . change-log-mode) ("[cC]hange[lL]og[-.][0-9]+\\'" . change-log-mode) ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode) ("\\.scm\\.[0-9]*\\'" . scheme-mode) ("\\.[ck]?sh\\'\\|\\.shar\\'\\|/\\.z?profile\\'" . sh-mode) ("\\.bash\\'" . sh-mode) ("\\(/\\|\\`\\)\\.\\(bash_profile\\|z?login\\|bash_login\\|z?logout\\)\\'" . sh-mode) ("\\(/\\|\\`\\)\\.\\(bash_logout\\|shrc\\|[kz]shrc\\|bashrc\\|t?cshrc\\|esrc\\)\\'" . sh-mode) ("\\(/\\|\\`\\)\\.\\([kz]shenv\\|xinitrc\\|startxrc\\|xsession\\)\\'" . sh-mode) ("\\.m?spec\\'" . sh-mode) ("\\.m[mes]\\'" . nroff-mode) ("\\.man\\'" . nroff-mode) ("\\.sty\\'" . latex-mode) ("\\.cl[so]\\'" . latex-mode) ("\\.bbl\\'" . latex-mode) ("\\.bib\\'" . bibtex-mode) ("\\.sql\\'" . sql-mode) ("\\.m[4c]\\'" . m4-mode) ("\\.mf\\'" . metafont-mode) ("\\.mp\\'" . metapost-mode) ("\\.vhdl?\\'" . vhdl-mode) ("\\.article\\'" . text-mode) ("\\.letter\\'" . text-mode) ("\\.i?tcl\\'" . tcl-mode) ("\\.exp\\'" . tcl-mode) ("\\.itk\\'" . tcl-mode) ("\\.icn\\'" . icon-mode) ("\\.sim\\'" . simula-mode) ("\\.mss\\'" . scribe-mode) ("\\.f9[05]\\'" . f90-mode) ("\\.indent\\.pro\\'" . fundamental-mode) ("\\.pro\\'" . idlwave-mode) ("\\.prolog\\'" . prolog-mode) ("\\.tar\\'" . tar-mode) ("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\)\\'" . archive-mode) ("\\.\\(ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" . archive-mode) ("\\.\\(sx[dmicw]\\|odt\\)\\'" . archive-mode) ("\\`/tmp/Re" . text-mode) ("/Message[0-9]*\\'" . text-mode) ("\\.zone\\'" . zone-mode) ("\\`/tmp/fol/" . text-mode) ("\\.oak\\'" . scheme-mode) ("\\.sgml?\\'" . sgml-mode) ("\\.x[ms]l\\'" . xml-mode) ("\\.dtd\\'" . sgml-mode) ("\\.ds\\(ss\\)?l\\'" . dsssl-mode) ("\\.js\\'" . java-mode) ("\\.x[bp]m\\'" . c-mode) ("\\.d?v\\'" . verilog-mode) ("[]>:/\\]\\..*\\(emacs\\|gnus\\|viper\\)\\'" . emacs-lisp-mode) ("\\`\\..*emacs\\'" . emacs-lisp-mode) ("[:/]_emacs\\'" . emacs-lisp-mode) ("/crontab\\.X*[0-9]+\\'" . shell-script-mode) ("\\.ml\\'" . lisp-mode) ("\\.asd\\'" . lisp-mode) ("\\.\\(asn\\|mib\\|smi\\)\\'" . snmp-mode) ("\\.\\(as\\|mi\\|sm\\)2\\'" . snmpv2-mode) ("\\.\\(diffs?\\|patch\\|rej\\)\\'" . diff-mode) ("\\.\\(dif\\|pat\\)\\'" . diff-mode) ("\\.[eE]?[pP][sS]\\'" . ps-mode) ("configure\\.\\(ac\\|in\\)\\'" . autoconf-mode) ("BROWSE\\'" . ebrowse-tree-mode) ("\\.ebrowse\\'" . ebrowse-tree-mode) ("#\\*mail\\*" . mail-mode) ("\\.g\\'" . antlr-mode) ("\\.ses\\'" . ses-mode) ("\\.\\(soa\\|zone\\)\\'" . dns-mode) ("\\.docbook\\'" . sgml-mode) ("\\.com\\'" . dcl-mode) ("/config\\.\\(?:bat\\|log\\)\\'" . fundamental-mode) ("\\.\\(?:[iI][nN][iI]\\|[lL][sS][tT]\\|[rR][eE][gG]\\|[sS][yY][sS]\\)\\'" . conf-mode) ("\\.\\(?:desktop\\|la\\)\\'" . conf-unix-mode) ("\\.ppd\\'" . conf-ppd-mode) ("java.+\\.conf\\'" . conf-javaprop-mode) ("\\.properties\\(?:\\.[a-zA-Z0-9._-]+\\)?\\'" . conf-javaprop-mode) ("[/.]c\\(?:on\\)?f\\(?:i?g\\)?\\(?:\\.[a-zA-Z0-9._-]+\\)?\\'" . conf-mode-maybe) ("\\`/etc/\\(?:DIR_COLORS\\|ethers\\|.?fstab\\|.*hosts\\|lesskey\\|login\\.?de\\(?:fs\\|vperm\\)\\|magic\\|mtab\\|pam\\.d/.*\\|permissions\\(?:\\.d/.+\\)?\\|protocols\\|rpc\\|services\\)\\'" . conf-space-mode) ("\\`/etc/\\(?:acpid?/.+\\|aliases\\(?:\\.d/.+\\)?\\|default/.+\\|group-?\\|hosts\\..+\\|inittab\\|ksysguarddrc\\|opera6rc\\|passwd-?\\|shadow-?\\|sysconfig/.+\\)\\'" . conf-mode) ("[cC]hange[lL]og[-.][-0-9a-z]+\\'" . change-log-mode) ("/\\.?\\(?:gnokiirc\\|kde.*rc\\|mime\\.types\\|wgetrc\\)\\'" . conf-mode) ("/\\.\\(?:enigma\\|gltron\\|gtk\\|hxplayer\\|net\\|neverball\\|qt/.+\\|realplayer\\|scummvm\\|sversion\\|sylpheed/.+\\|xmp\\)rc\\'" . conf-mode) ("/\\.\\(?:gdbtkinit\\|grip\\|orbital/.+txt\\|rhosts\\|tuxracer/options\\)\\'" . conf-mode) ("/\\.?X\\(?:default\\|resource\\|re\\)s\\>" . conf-xdefaults-mode) ("/X11.+app-defaults/" . conf-xdefaults-mode) ("/X11.+locale/.+/Compose\\'" . conf-colon-mode) ("/X11.+locale/compose\\.dir\\'" . conf-javaprop-mode) ("\\.[1-9]\\'" . nroff-mode) ("\\.tgz\\'" . tar-mode) ("\\.tbz\\'" . tar-mode)) c++-mode-hook '(semantic-default-c-setup) c-mode-common-hook nil c-mode-hook '(semantic-default-c-setup) compilation-mode-hook nil compilation-window-height nil ediff-quit-hook '(ediff-cleanup-mess ecb-ediff-quit-hook) help-mode-hook nil java-mode-hook '(wisent-java-default-setup) max-lisp-eval-depth 1000 max-specpdl-size 3000 post-command-hook '(global-font-lock-mode-check-buffers mode-local-post-major-mode-change nxhtml-global-minor-mode-check-buffers ecb-handle-major-mode-visibilty ecb-layout-post-command-hook) pre-command-hook '(ecb-layout-pre-command-hook tooltip-hide) system-type 'windows-nt temp-buffer-max-height '(lambda (buffer) (/ (- (frame-height) 2) 2)) truncate-lines nil truncate-partial-width-windows t window-system 'w32 semantic-after-partial-cache-change-hook '(semanticdb-partial-synchronize-table ecb-update-after-partial-reparse) semantic-after-toplevel-cache-change-hook '(semanticdb-synchronize-table ecb-rebuild-methods-buffer-with-tagcache) semantic-format-face-alist '((function . font-lock-function-name-face) (variable . font-lock-variable-name-face) (type . font-lock-type-face) (include . font-lock-constant-face) (package . font-lock-constant-face) (label . font-lock-string-face) (comment . font-lock-comment-face) (keyword . font-lock-keyword-face) (abstract . italic) (static . underline) (documentation . font-lock-doc-face)) semantic-orphaned-member-metaparent-type "class" semantic-uml-colon-string " : " speedbar-dynamic-tags-function-list '((semantic-sb-fetch-tag-table . semantic-sb-insert-tag-table) (speedbar-fetch-dynamic-imenu . speedbar-insert-imenu-list) (speedbar-fetch-dynamic-etags . speedbar-insert-etags-list)) speedbar-fetch-etags-arguments '("-D" "-I" "-o" "-") speedbar-fetch-etags-command "etags" speedbar-fetch-etags-parse-list '(("\\.\\([cChH]\\|c\\+\\+\\|cpp\\|cc\\|hh\\|java\\|cxx\\|hxx\\)\\'" . speedbar-parse-c-or-c++tag) ("^\\.emacs$\\|.\\(el\\|l\\|lsp\\)\\'" . "def[^i]+\\s-+\\(\\(\\w\\|[-_]\\)+\\)\\s-*") ("\\.tex\\'" . speedbar-parse-tex-string) ("\\.p\\'" . "\\(\\(FUNCTION\\|function\\|PROCEDURE\\|procedure\\)\\s-+\\([a-zA-Z0-9_.:]+\\)\\)\\s-*(?^?") ) speedbar-tag-group-name-minimum-length 4 speedbar-tag-hierarchy-method '(speedbar-prefix-group-tag-hierarchy speedbar-trim-words-tag-hierarchy) speedbar-tag-regroup-maximum-length 10 speedbar-tag-split-minimum-length 20 ecb-adviced-function-sets '((ecb-compatibility-advices) (ecb-winman-not-supported-function-advices) (ecb-winman-winring-adviced-functions) (ecb-winman-escreen-adviced-functions) (ecb-eshell-adviced-functions) (ecb-methods-browser-advices) (ecb-vc-advices) (ecb-permanent-adviced-layout-functions) (ecb-layout-basic-adviced-functions) (ecb-speedbar-adviced-functions) (ecb-always-disabled-advices)) ecb-adviced-functions '((view-mode-exit . around) (tmm-prompt . around) (scroll-all-function-all . around) (count-windows . around) (master-says . around) (electric-buffer-list . after) (electric-buffer-list . before) (electric-command-history . before) (Electric-pop-up-window . around) (one-window-p . around) (bs-show . before) (winner-undo . before) (winner-redo . before) (winner-mode . before) (winring-initialize . after) (winring-save-current-configuration . before) (winring-restore-configuration . before) (winring-duplicate-configuration . before) (winring-set-name . after) (escreen-save-current-screen-configuration . before) (eshell . around) (custom-save-all . around) (make-indirect-buffer . after) (vc-checkin . after) (clearcase-sync-from-disk . after) (set-window-configuration . after) (current-window-configuration . after) (balance-windows . around) (walk-windows . around) (other-window-for-scrolling . around) (switch-to-buffer . around) (switch-to-buffer-other-window . around) (split-window . around) (split-window . before) (split-window-vertically . around) (split-window-horizontally . around) (delete-other-windows . around) (delete-other-windows . before) (delete-window . around) (delete-window . before) (delete-windows-on . around) (other-window . around) (display-buffer . around) (get-lru-window . before) (get-largest-window . before) (pop-to-buffer . around) (resize-temp-buffer-window . around) (shrink-window-if-larger-than-buffer . around) (shrink-window . around) (enlarge-window . around) (mouse-drag-mode-line . around) (mouse-drag-vertical-line . around) (scroll-other-window . around) (compilation-set-window-height . around) (delete-frame . around) (dframe-select-attached-frame . after) (dframe-mouse-set-point . around) (speedbar-get-focus . around) (speedbar-frame-mode . around) (speedbar-click . around)) ecb-autocontrol/sync-fcn-register '((ecb-symboldef-buffer-sync . ecb-symboldef-buffer-name) (ecb-analyse-buffer-sync . ecb-analyse-buffer-name) (ecb-eshell-buffer-sync) (ecb-tag-sync . ecb-methods-buffer-name) (ecb-basic-buffer-sync) (ecb-repair-only-ecb-window-layout) (ecb-layout-post-command-hook) (ecb-layout-pre-command-hook) (ecb-handle-major-mode-visibilty) (ecb-compilation-buffer-list-changed-p) (ecb-speedbar-buffer-sync . ecb-speedbar-buffer-name) (ecb-stealthy-updates) (ecb-monitor-autocontrol-functions)) ecb-buffer-setfunction-registration '((" *ECB History*" . ecb-set-history-buffer) (" *ECB Methods*" . ecb-set-methods-buffer) (" *ECB Sources*" . ecb-set-sources-buffer) (" *ECB Directories*" . ecb-set-directories-buffer)) ecb-current-maximized-ecb-buffer-name nil ecb-edit-area-creators '((0 . split-window-vertically)) ecb-idle-timer-alist '((ecb-stealthy-updates . [nil 0 1 0 t ecb-stealthy-updates nil t]) (ecb-monitor-autocontrol-functions . [nil 0 1 0 t ecb-monitor-autocontrol-functions nil t]) (ecb-repair-only-ecb-window-layout . [t 0 0 500000 t ecb-repair-only-ecb-window-layout nil t]) (ecb-compilation-buffer-list-changed-p . [t 0 0 250000 t ecb-compilation-buffer-list-changed-p nil t]) (ecb-basic-buffer-sync . [t 0 0 250000 t ecb-basic-buffer-sync nil t]) (ecb-tag-sync . [t 0 0 250000 t ecb-tag-sync nil t])) ecb-last-window-config-before-deactivation nil ecb-minor-mode t ecb-path-selected-directory #("c:/Dwig/Scripts" 0 15 (help-echo "Mouse-2 toggles maximizing, mouse-3 displays a popup-menu")) ecb-path-selected-source nil ecb-post-command-hooks '(ecb-handle-major-mode-visibilty ecb-layout-post-command-hook) ecb-pre-command-hooks '(ecb-layout-pre-command-hook) ecb-special-ecb-buffers-of-current-layout '(" *ECB Directories*" " *ECB Sources*" " *ECB Methods*" " *ECB History*") ecb-stealthy-function-list '(ecb-stealthy-vc-check-in-directories-buf ecb-stealthy-vc-check-in-sources-buf ecb-stealthy-vc-check-in-history-buf ecb-stealthy-ro-check-in-sources-buf ecb-stealthy-ro-check-in-directories-buf ecb-stealthy-empty-dir-check) ecb-stealthy-function-state-alist '((ecb-stealthy-vc-check-in-directories-buf . done) (ecb-stealthy-vc-check-in-sources-buf . done) (ecb-stealthy-vc-check-in-history-buf . done) (ecb-stealthy-ro-check-in-sources-buf . done) (ecb-stealthy-ro-check-in-directories-buf . done) (ecb-stealthy-empty-dir-check . done)) ecb-toggle-layout-state 0 ecb-tree-buffer-creators '((ecb-analyse-buffer-name . ecb-create-analyse-tree-buffer) (ecb-methods-buffer-name . ecb-create-methods-tree-buffer) (ecb-history-buffer-name . ecb-create-history-tree-buffer) (ecb-sources-buffer-name . ecb-create-sources-tree-buffer) (ecb-directories-buffer-name . ecb-create-directories-tree-buffer)) ecb-tree-buffers '((" *ECB Directories*" . ecb-directories-buffer-name) (" *ECB Sources*" . ecb-sources-buffer-name) (" *ECB History*" . ecb-history-buffer-name) (" *ECB Methods*" . ecb-methods-buffer-name) (" *ECB Analyse*" . ecb-analyse-buffer-name)) ecb-windows-hidden nil ecb-activate-before-layout-draw-hook nil ecb-activate-before-new-frame-created-hook nil ecb-activate-hook '(ecb-eshell-auto-activate-hook) ecb-activation-selects-ecb-frame-if-already-active 'ask ecb-add-path-for-not-matching-files '(t) ecb-advice-window-functions-signal-error nil ecb-after-directory-change-hook nil ecb-analyse-bucket-element-face 'ecb-analyse-bucket-element-face ecb-analyse-bucket-node-face 'ecb-analyse-bucket-node-face ecb-analyse-buffer-after-create-hook nil ecb-analyse-buffer-name " *ECB Analyse*" ecb-analyse-buffer-sync 'basic ecb-analyse-buffer-sync-delay 2 ecb-analyse-buffer-sync-hook nil ecb-analyse-collapsed-buckets nil ecb-analyse-face 'ecb-default-highlight-face ecb-analyse-fontified-buckets '("Context" "Function") ecb-analyse-gen-tag-info-fn nil ecb-analyse-general-face 'ecb-default-general-face ecb-analyse-show-node-info '(if-too-long . name) ecb-analyse-show-tag-info-fn 'message ecb-auto-activate nil ecb-auto-compatibility-check t ecb-auto-expand-directory-tree 'best ecb-auto-expand-tag-tree 'expand-spec ecb-auto-expand-tag-tree-collapse-other nil ecb-auto-save-before-etags-methods-rebuild t ecb-auto-update-methods-after-save t ecb-basic-buffer-sync '(Info-mode dired-mode) ecb-basic-buffer-sync-delay 0.25 ecb-basic-buffer-sync-hook nil ecb-before-activate-hook nil ecb-before-deactivate-hook nil ecb-bucket-node-display '("" "" ecb-bucket-node-face) ecb-cache-directory-contents '(("^/\\([^:/]*@\\)?\\([^@:/]*\\):.*" . 0) (".*" . 50)) ecb-cache-directory-contents-not nil ecb-change-layout-preserves-compwin-state t ecb-clear-caches-before-activate nil ecb-common-tree-buffer-after-create-hook nil ecb-compilation-buffer-names '(("*Calculator*") ("*vc*") ("*vc-diff*") ("*Apropos*") ("*Occur*") ("*shell*") ("\\*[cC]ompilation.*\\*" . t) ("\\*i?grep.*\\*" . t) ("*JDEE Compile Server*") ("*Help*") ("*Completions*") ("*Backtrace*") ("*Compile-log*") ("*bsh*") ("*Messages*")) ecb-compilation-major-modes '(compilation-mode) ecb-compilation-predicates '(comint-check-proc) ecb-compile-window-height nil ecb-compile-window-prevent-shrink-below-height t ecb-compile-window-temporally-enlarge 'after-display ecb-compile-window-width 'frame ecb-create-layout-file "~/.ecb-user-layouts.el" ecb-create-layout-frame-height 42 ecb-create-layout-frame-width 110 ecb-deactivate-hook nil ecb-debug-mode nil ecb-default-tag-filter nil ecb-directories-buffer-after-create-hook nil ecb-directories-buffer-name " *ECB Directories*" ecb-directories-general-face 'ecb-default-general-face ecb-directories-menu-sorter nil ecb-directories-menu-user-extension '(("Version Control" (ecb-dir-popup-cvs-status "CVS Status") (ecb-dir-popup-cvs-examine "CVS Examine") (ecb-dir-popup-cvs-update "CVS Update")) ) ecb-directories-menu-user-extension-function 'ignore ecb-directories-show-node-info '(if-too-long . path) ecb-directories-update-speedbar 'auto ecb-directory-face 'ecb-default-highlight-face ecb-directory-not-accessible-face 'ecb-directory-not-accessible-face ecb-display-default-dir-after-start t ecb-display-image-icons-for-semantic-tags t ecb-enlarged-compilation-window-max-height 'best ecb-eshell-auto-activate nil ecb-eshell-buffer-sync 'basic ecb-eshell-buffer-sync-delay 'basic ecb-eshell-enlarge-when-eshell t ecb-eshell-fit-window-to-command-output t ecb-exclude-parents-regexps nil ecb-excluded-directories-regexps '("^\\(CVS\\|\\.[^xX]*\\)$") ecb-expand-methods-switch-off-auto-expand t ecb-find-external-tag-functions '((default ecb-search-tag-by-semantic-analyzer) (jde-mode ecb-jde-show-class-source)) ecb-fix-window-size nil ecb-font-lock-tags t ecb-force-reparse-when-semantic-idle-scheduler-off nil ecb-grep-function 'lgrep ecb-grep-recursive-function 'rgrep ecb-help-html-path "./html-help/ecb.html" ecb-help-info-path "./info-help/ecb.info" ecb-hide-ecb-windows-after-hook nil ecb-hide-ecb-windows-before-hook nil ecb-highlight-tag-with-point 'highlight-scroll ecb-highlight-tag-with-point-delay 0.25 ecb-history-bucket-node-face 'ecb-history-bucket-node-face ecb-history-buffer-after-create-hook nil ecb-history-buffer-name " *ECB History*" ecb-history-dead-buffer-face 'ecb-history-dead-buffer-face ecb-history-exclude-file-regexps '("TAGS$" "semantic\\.cache$") ecb-history-face 'ecb-default-highlight-face ecb-history-general-face 'ecb-default-general-face ecb-history-indirect-buffer-face 'ecb-history-indirect-buffer-face ecb-history-make-buckets 'directory ecb-history-menu-sorter nil ecb-history-menu-user-extension '(("Version control" (ecb-file-popup-ediff-revision "Ediff against revision") ("---") (ecb-file-popup-vc-next-action "Check In/Out") (ecb-file-popup-vc-log "Revision history") (ecb-file-popup-vc-annotate "Annotate") (ecb-file-popup-vc-diff "Diff against last version") ("---") (ecb-file-popup-vc-refresh-file "Recompute state for file") (ecb-file-popup-vc-refresh-all-files "Recompute state for whole history")) ) ecb-history-menu-user-extension-function 'ignore ecb-history-show-node-info '(always . name-path) ecb-history-sort-ignore-case t ecb-history-sort-method 'name ecb-history-stick-indirect-buffers-to-basebuffer t ecb-host-accessible-check-valid-time nil ecb-ignore-display-buffer-function 'always ecb-ignore-pop-up-frames 'compile-window ecb-ignore-special-display 'compile-window ecb-jde-set-directories-buffer-to-jde-sourcepath nil ecb-key-map '("C-c ." (t "fh" ecb-history-filter) (t "fs" ecb-sources-filter) (t "fm" ecb-methods-filter) (t "fr" ecb-methods-filter-regexp) (t "ft" ecb-methods-filter-tagclass) (t "fc" ecb-methods-filter-current-type) (t "fp" ecb-methods-filter-protection) (t "fn" ecb-methods-filter-nofilter) (t "fl" ecb-methods-filter-delete-last) (t "ff" ecb-methods-filter-function) (t "p" ecb-nav-goto-previous) (t "n" ecb-nav-goto-next) (t "lc" ecb-change-layout) (t "lr" ecb-redraw-layout) (t "lw" ecb-toggle-ecb-windows) (t "lt" ecb-toggle-layout) (t "s" ecb-window-sync) (t "r" ecb-rebuild-methods-buffer) (t "a" ecb-toggle-auto-expand-tag-tree) (t "x" ecb-expand-methods-nodes) (t "h" ecb-show-help) (t "gl" ecb-goto-window-edit-last) (t "g1" ecb-goto-window-edit1) (t "g2" ecb-goto-window-edit2) (t "gc" ecb-goto-window-compilation) (t "gd" ecb-goto-window-directories) (t "gs" ecb-goto-window-sources) (t "gm" ecb-goto-window-methods) (t "gh" ecb-goto-window-history) (t "ga" ecb-goto-window-analyse) (t "gb" ecb-goto-window-speedbar) (t "md" ecb-maximize-window-directories) (t "ms" ecb-maximize-window-sources) (t "mm" ecb-maximize-window-methods) (t "mh" ecb-maximize-window-history) (t "ma" ecb-maximize-window-analyse) (t "mb" ecb-maximize-window-speedbar) (t "e" eshell) (t "o" ecb-toggle-scroll-other-window-scrolls-compile) (t "\\" ecb-toggle-compile-window) (t "/" ecb-toggle-compile-window-height) (t "," ecb-cycle-maximized-ecb-buffers) (t "." ecb-cycle-through-compilation-buffers)) ecb-kill-buffer-clears-history nil ecb-layout-always-operate-in-edit-window '(switch-to-buffer) ecb-layout-debug-mode nil ecb-layout-name "left8" ecb-layout-window-sizes '(("left8" (0.327683615819209 . 0.05263157894736842) (0.327683615819209 . 0.07894736842105263) (0.327683615819209 . 0.8026315789473685) (0.327683615819209 . 0.05263157894736842)) ) ecb-major-modes-show-or-hide '(nil) ecb-maximize-ecb-window-after-selection nil ecb-maximize-next-after-maximized-select nil ecb-method-face 'ecb-default-highlight-face ecb-method-non-semantic-face 'speedbar-tag-face ecb-methods-buffer-after-create-hook nil ecb-methods-buffer-name " *ECB Methods*" ecb-methods-filter-replace-existing 'never ecb-methods-general-face 'ecb-default-general-face ecb-methods-menu-sorter nil ecb-methods-menu-user-extension nil ecb-methods-menu-user-extension-function 'ignore ecb-methods-nodes-collapse-spec 'all ecb-methods-nodes-expand-spec '(type variable function section nonterminal keyword token) ecb-methods-separate-prototypes t ecb-methods-show-node-info '(if-too-long . name+type) ecb-minor-mode-text "" ecb-mode-line-data '((ecb-directories-buffer-name . sel-dir) (ecb-sources-buffer-name . sel-dir) (ecb-methods-buffer-name . sel-source) (ecb-analyse-buffer-name . sel-source) (ecb-history-buffer-name . #("History" 0 7 (help-echo "Mouse-2 toggles maximizing, mouse-3 displays a popup-menu"))) ) ecb-mode-line-data-face 'ecb-mode-line-data-face ecb-mode-line-display-window-number t ecb-mode-line-prefix-face 'ecb-mode-line-prefix-face ecb-mode-line-prefixes '((ecb-directories-buffer-name) (ecb-sources-buffer-name . ecb-sources-filter-modeline-prefix) (ecb-methods-buffer-name . ecb-methods-filter-modeline-prefix) (ecb-history-buffer-name . ecb-history-filter-modeline-prefix)) ecb-mode-line-win-nr-face 'ecb-mode-line-win-nr-face ecb-mouse-click-destination 'last-point ecb-new-ecb-frame nil ecb-non-semantic-exclude-modes '(sh-mode fundamental-mode text-mode) ecb-non-semantic-methods-initial-expand nil ecb-non-semantic-parsing-function nil ecb-options-version "2.40" ecb-other-window-behavior 'smart ecb-ping-options '("-n" "2" "HOST") ecb-ping-program "ping" ecb-post-process-semantic-taglist '((c++-mode ecb-group-function-tags-with-parents) (emacs-lisp-mode ecb-group-function-tags-with-parents) (c-mode ecb-filter-c-prototype-tags)) ecb-prescan-directories-exclude-regexps nil ecb-prescan-directories-for-emptyness 'unless-remote ecb-primary-secondary-mouse-buttons 'mouse-2--C-mouse-2 ecb-process-non-semantic-files t ecb-read-only-check-exclude-regexps nil ecb-rebuild-non-semantic-methods-before-hook nil ecb-redraw-layout-after-hook '(ecb-eshell-recenter) ecb-redraw-layout-before-hook nil ecb-redraw-layout-quickly nil ecb-run-ediff-in-ecb-frame t ecb-scroll-other-window-scrolls-compile-window nil ecb-select-edit-window-on-redraw nil ecb-show-ecb-windows-after-hook nil ecb-show-ecb-windows-before-hook nil ecb-show-help-format 'info ecb-show-only-positioned-tags nil ecb-show-source-file-extension t ecb-show-sources-in-directories-buffer '("left7" "left13" "left14" "left15") ecb-show-tags '((default (include collapsed nil) (parent collapsed nil) (type flattened nil) (variable collapsed access) (function flattened access) (label hidden nil) (t collapsed nil)) (c++-mode (include collapsed nil) (parent collapsed nil) (type flattened nil) (variable collapsed access) (function flattened access) (function collapsed access) (label hidden nil) (t collapsed nil)) (c-mode (include collapsed nil) (parent collapsed nil) (type flattened nil) (variable collapsed access) (function flattened access) (function collapsed access) (label hidden nil) (t collapsed nil)) (bovine-grammar-mode (keyword collapsed name) (token collapsed name) (nonterminal flattened name) (rule flattened name) (t collapsed nil)) (wisent-grammar-mode (keyword collapsed name) (token collapsed name) (nonterminal flattened name) (rule flattened name) (t collapsed nil)) (texinfo-mode (section flattened nil) (def collapsed name) (t collapsed nil))) ecb-source-face 'ecb-default-highlight-face ecb-source-file-regexps '((".*" ("\\(^\\(\\.\\|#\\)\\|\\(~$\\|\\.\\(elc\\|obj\\|o\\|class\\|lib\\|dll\\|a\\|so\\|cache\\)$\\)\\)") ("^\\.\\(emacs\\|gnus\\)$")) ) ecb-source-in-directories-buffer-face 'ecb-source-in-directories-buffer-face ecb-source-path '("C:\\Dwig\\Falcon\\Development\\Client" "C:\\Dwig\\Falcon\\Development\\Online" "C:\\Dwig\\Projects" "C:\\Dwig\\Falcon\\Development\\StandardDatabase\\DBSetup") ecb-source-read-only-face 'ecb-source-read-only-face ecb-sources-buffer-after-create-hook nil ecb-sources-buffer-name " *ECB Sources*" ecb-sources-exclude-cvsignore nil ecb-sources-general-face 'ecb-default-general-face ecb-sources-menu-sorter nil ecb-sources-menu-user-extension '(("Version control" (ecb-file-popup-ediff-revision "Ediff against revision") ("---") (ecb-file-popup-vc-next-action "Check In/Out") (ecb-file-popup-vc-log "Revision history") (ecb-file-popup-vc-annotate "Annotate") (ecb-file-popup-vc-diff "Diff against last version") ("---") (ecb-file-popup-vc-refresh-file "Recompute state for file") (ecb-file-popup-vc-refresh-dir "Recompute state for whole dir")) ) ecb-sources-menu-user-extension-function 'ignore ecb-sources-perform-read-only-check 'unless-remote ecb-sources-show-node-info '(if-too-long . name) ecb-sources-sort-ignore-case t ecb-sources-sort-method 'name ecb-speedbar-before-activate-hook nil ecb-speedbar-buffer-sync 'basic ecb-speedbar-buffer-sync-delay 'basic ecb-speedbar-buffer-sync-hook nil ecb-split-edit-window-after-start 'before-deactivation ecb-stealthy-tasks-delay 1 ecb-symboldef-buffer-name " *ECB Symboldefinition*" ecb-symboldef-buffer-sync 'basic ecb-symboldef-buffer-sync-delay 'basic ecb-symboldef-buffer-sync-hook nil ecb-symboldef-find-functions '((lisp-interaction-mode . ecb-symboldef-find-lisp-doc) (lisp-mode . ecb-symboldef-find-lisp-doc) (emacs-lisp-mode . ecb-symboldef-find-lisp-doc) (default . ecb-symboldef-find-definition)) ecb-tag-display-function '((default . ecb-format-tag-uml-prototype)) ecb-tag-header-face 'ecb-tag-header-face ecb-tag-jump-sets-mark t ecb-tag-visit-post-actions '((default ecb-tag-visit-smart-tag-start ecb-tag-visit-highlight-tag-header) (java-mode ecb-tag-visit-goto-doc-start) (jde-mode ecb-tag-visit-goto-doc-start)) ecb-tip-of-the-day t ecb-tip-of-the-day-file "~/.ecb-tip-of-day.el" ecb-toggle-layout-sequence '("left9" "left14") ecb-tree-buffer-style 'image ecb-tree-do-not-leave-window-after-select nil ecb-tree-easy-hor-scroll 5 ecb-tree-expand-symbol-before t ecb-tree-guide-line-face 'ecb-tree-guide-line-face ecb-tree-image-icons-directories '("c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/ecb-2.40/ecb-images/default/height-17" (ecb-directories-buffer-name . "c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/ecb-2.40/ecb-images/directories/height-17") (ecb-sources-buffer-name . "c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/ecb-2.40/ecb-images/sources/height-14_to_21") (ecb-methods-buffer-name . "c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/ecb-2.40/ecb-images/methods/height-14_to_21") ) ecb-tree-incremental-search 'prefix ecb-tree-indent 4 ecb-tree-make-parent-node-sticky t ecb-tree-mouse-action-trigger 'button-release ecb-tree-navigation-by-arrow t ecb-tree-stickynode-indent-string " " ecb-tree-truncate-lines '(ecb-directories-buffer-name ecb-sources-buffer-name ecb-methods-buffer-name ecb-history-buffer-name ecb-analyse-buffer-name) ecb-truncate-long-names t ecb-type-tag-display nil ecb-type-tag-expansion '((default "class" "interface" "group" "namespace") (c-mode "struct")) ecb-use-recursive-edit nil ecb-use-speedbar-instead-native-tree-buffer nil ecb-vc-directory-exclude-regexps nil ecb-vc-enable-support nil ecb-vc-state-mapping '((up-to-date . up-to-date) (edited . edited) (locally-modified . edited) (needs-patch . needs-patch) (needs-checkout . needs-patch) (needs-merge . needs-merge) (unlocked-changes . unlocked-changes) (added . added) (locally-added . added) (ignored . ignored) (unknown . unknown)) ecb-vc-supported-backends nil ecb-version-check t ecb-windows-height 0.33 ecb-windows-width 0.33 ecb-winman-escreen-number 1 ecb-winman-winring-name "ECB" ) ----------------------------------------------------- The attributes of the ECB-faces are: ecb-mode-line-data-face: nil ecb-mode-line-prefix-face: (:foreground forestgreen) ecb-mode-line-win-nr-face: (:weight bold) ecb-bucket-node-face: (:inherit ecb-default-general-face :weight bold) ecb-type-tag-group-face: (:foreground dim gray :weight bold) ecb-type-tag-enum-face: (:weight bold) ecb-type-tag-union-face: (:weight bold) ecb-type-tag-typedef-face: (:weight bold) ecb-type-tag-struct-face: (:weight bold) ecb-type-tag-interface-face: (:weight bold) ecb-type-tag-class-face: (:weight bold) ecb-directory-not-accessible-face: (:inherit ecb-directories-general-face :foreground gray60) ecb-source-read-only-face: (:inherit ecb-default-general-face :slant italic) ecb-source-in-directories-buffer-face: (:inherit ecb-directories-general-face :foreground medium blue) ecb-tag-header-face: (:background SeaGreen1) ecb-analyse-bucket-node-face: (:inherit ecb-bucket-node-face :weight bold) ecb-analyse-bucket-element-face: (:inherit ecb-analyse-general-face :foreground brown) ecb-analyse-general-face: (:inherit ecb-default-general-face :height 1.0) ecb-analyse-face: (:inherit ecb-default-highlight-face :background cornflower blue :foreground yellow) ecb-history-face: (:inherit ecb-default-highlight-face :background cornflower blue :foreground yellow) ecb-method-non-semantic-face: (:inherit ecb-methods-general-face :foreground brown) ecb-method-face: (:inherit ecb-default-highlight-face :background cornflower blue :foreground yellow) ecb-source-face: (:inherit ecb-default-highlight-face :background cornflower blue :foreground yellow) ecb-directory-face: (:inherit ecb-default-highlight-face :background cornflower blue :foreground yellow) ecb-default-highlight-face: (:background cornflower blue :foreground yellow) ecb-history-dead-buffer-face: (:inherit ecb-history-general-face :foreground gray60) ecb-history-indirect-buffer-face: (:inherit ecb-history-general-face :slant italic) ecb-history-bucket-node-face: (:inherit ecb-bucket-node-face) ecb-history-general-face: (:inherit ecb-default-general-face :height 1.0) ecb-methods-general-face: (:inherit ecb-default-general-face :height 1.0) ecb-sources-general-face: (:inherit ecb-default-general-face :height 1.0) ecb-directories-general-face: (:inherit ecb-default-general-face :height 1.0) ecb-tree-guide-line-face: (:inherit ecb-default-general-face :foreground grey :height 1.0) ecb-default-general-face: (:height 1.0) ----------------------------------------------------- ----------------------------------------------------- There was no *ecb-tag-dump* buffer ----------------------------------------------------- ----------------------------------------------------- There was no *Backtrace* buffer ----------------------------------------------------- ----------------------------------------------------- The contents of the *Messages* buffer were ("C:\\ProgramFiles\\Emacs\\emacs-22.3\\bin\\emacs.exe") Loading encoded-kb...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/cedet-1.0pre6/common/cedet.el (source)... Loading cl-macs...done Loading byte-opt...done Setting up CEDET packages... Loading derived...done Loading cl-seq...done Loading ede-speedbar...done Setting up CEDET packages...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/cedet-1.0pre6/common/cedet.el (source)...done Loading semantic-idle...done Loading semanticdb-mode...done Loading semantic-mru-bookmark... Loading ring...done Loading semantic-mru-bookmark...done Loading senator...done Loading avoid...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxml-mode-20041004/rng-auto.el (source)...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/autostart.el (source)... Nxml/Nxhtml Autostart.el loading ... Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/nxhtml-loaddefs.el (source)...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/nxhtml/nxhtml-menu.el (source)... Loading regexp-opt...done Loading dired-x...done Loading easy-mmode...done Loading url-methods...done html-site-current (information): No current site set !! File mumamo uses old-style backquotes !! Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/nxhtml/nxhtml-menu.el (source)...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/autostart22.el (source)... Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxml-mode-20041004/rng-auto.el (source)...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/autostart22.el (source)...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/etc/schema/schema-path-patch.el (source)...done xhtml-loader.rnc was ok (No changes need to be saved) Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/nxhtml/nxhtml-autoload.el (source)... nxhtml-autoload starting ... (hm, should maybe be renamed ...) majmodpri-sort-lists running ... nxhtml-autoload finished Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/nxhtml/nxhtml-autoload.el (source)...done === Loaded at nxhtml/autostart.el end: (feature 'html-imenu)=t (feature 'html-quote)=t (feature 'html-site)=t (feature 'html-upl)=t (feature 'mumamo)=t (feature 'nxhtml-menu)=t (feature 'nxhtml-mode)=t (feature 'rngalt)=t (feature 'tidy-xhtml)=t Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/nxhtml/autostart.el (source)...done Loading utf-16...done Package rsz-mini is obsolete Loading server...done Loading semantic-el...done For information about GNU Emacs and the GNU system, type C-h C-a. Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/ecb-2.40/ecb.el (source)... ECB 2.40 uses CEDET 1.0pre6 (contains semantic 2.0pre6, eieio 1.2, speedbar 1.0.2). Loading edmacro...done Loading c:/ProgramFiles/Emacs/emacs-22.3/site-lisp/ecb-2.40/ecb.el (source)...done All requirements for ECB 2.40 fulfilled - Enjoy it! Loading cl-extra...done The ECB is now activated. There are no NEWS to display. Loading c:/Unix/.ecb-tip-of-day.el (source)...done Making completion list... Loading eieio-opt...done Preparing problem report... Loading sendmail...done Formatting bug report buffer...................................... End Insert *Messages* buffer ----------------------------------------------------- ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: [CEDET-devel] ECB 2.40 released!Hi,
It does seem like the python initialization is having some trouble loading old cache files. I'd like to recommend Don try the following: 1) Erase the contents of ~/.semanticdb If this is on windows, Emacs can expand that path for you. 2) Start Emacs (w/out ECB) and load in a python file that has trouble. Does it initialize ok? 3) If so (I'm guessing it will) exit Emacs. 4) Start Emacs again. Does it now have the problem? If so, do: M-x toggle-debug-on-error RET M-x python-mode RET and if that is ok, kill the buffer, and reload it now that the debug on error is on. Eric klaus.berndl@... seems to think that: > Well, then it#s clear - seems that python is not supported by > semantic (but AFAIK current semantic has a python parser?! Eric?) > But if (semantic-active-p) is nil then semantic is not active... > What is the value of python-mode-hook in your setup?? > > Background: when semantic is not active then ECB can only uses etags > or imenu-parser for the contents which is much much much less > powerful then semantic-parser - with non-semantic-sources content > display is quite rough in ECB because these parsers (etags and > imenu) can not supply what ECB needs .... This is the reason for > your expanding/collapsing problem... > > So, here my recipe: Activate the semantic-python-parser for your > code and bob will be your uncle ;-) > > Klaus > > -----Ursprüngliche Nachricht----- > Von: Don Dwiggins [mailto:ddwiggins@...] > Gesendet: Dienstag, 19. Mai 2009 18:26 > An: ecb-list@... > Betreff: Re: [ECB-list] ECB 2.40 released! > > klaus.berndl@... wrote: >> 1. please always send a problem-report with the command >> `ecb-submit-problem-report' - this includes all informations i need > > Thanks for the reply; here 'tis: > --------------------------------------- > > Please enter the details of your bug report here: > > When I first load a Python file (or JS file, or...) after > activating, the methods buffer is empty. I can get it to fill in > the methods by doing M-x python-mode (which is redundant, the mode > is already set in the buffer), or by setting the scratch buffer to > python-mode before loading the file. (I also ran into this problem > earlier using ECB 2.32 with CEDET 1.0pre4.) > > Answering your questions: > 2. is semantic enables in your python-buffers (what does > (semantic-active-p) return if you call this with M-:)? > It returns nil > > 3. Is semantic-idle-scheduler-mode active in your buffer? > I don't think so; in fact, the Senator menu item doesn't show up > until I invoke python-mode. > > 4. What happens if you co not call pythom-mode but [C-c . r] or even > [C-u][C-c . r]? > Nothing. > > One other thing: when I invoked python-mode, I noticed the following > in the Messages buffer: > Cache Error: > [c:/Unix/.semanticdb/!drive_c!Dwig!Falcon!Development!Online!RCAServer!semantic.cache] > (invalid-read-syntax . in wrong context), Restart [2 times] ... but > it didn't seem to hurt anything. > > 5. Collapsing: Hmm, maybe you should build up a small example file > which you send to me and a step-by-step sceanrio what i must do, to > reproduce the behavior (beginning with 1. Start Emacs, 2. activate > ECB...!) > > OK: > 1) paste the following into a file: > ------------------------------- > class foo: > def __init__(self): > pass > > def foo1(self): > pass > > def foo2(self): > pass > > class bar: > def __init__(self): > pass > > def bar1(self): > pass > > def bar2(self): > pass > ------------------------------- > 2) start Emacs, > 3) activate ECB > 4) load the file > 5) do what you must to populate the methods buffer ;^) > 6) in the methods buffer, collapse the "foo" class > 7) move the cursor to the bottom of the file, hit Return > > ... at this point, after a short delay, I see "foo" expand. > (In fact, any change to the file will make it happen.) > > > Emacs : GNU Emacs 22.3.1 (i386-mingw-nt5.1.2600) > of 2008-09-06 on SOFT-MJASON > Package: ECB: 2.40, CEDET: 1.0pre6, semantic: 2.0pre6, eieio: 1.2, > speedbar: 1.0.2, JDEE: No JDEE > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables > unlimited royalty-free distribution of the report engine > for externally facing server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > Cedet-devel mailing list > Cedet-devel@... > https://lists.sourceforge.net/lists/listinfo/cedet-devel > ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: ECB 2.40 released!klaus.berndl@... wrote:
> So, here my recipe: Activate the semantic-python-parser for your code > and bob will be your uncle ;-) I have to admit, I haven't figured out how to "Activate the semantic-python-parser". I see that there's a wisent parser for python, and I've tried a few things, but nothing seems to do the trick. I noted the following in the Messages buffer, FWIW (this comes during loading of my Python file): > Language Python exists, assuming attribute modification > Loading wisent-python... > Loading semantic-decorate-include...done > Loading wisent-python...done > Loading semantic-edit...done > Loading semanticdb-file...done > Cache Error: [c:/Unix/.semanticdb/!drive_c!Dwig!Falcon!Development!Online!RCAServer!semantic.cache] (invalid-read-syntax . in wrong context), Restart [2 times] Also: > At least for my this works only when i explicitly load the library python.el, e.g. by (require 'python) in my .emacs I tried that (tried putting it before and after the CEDET and ECB stuff), with no difference. BTW, I'm working with PHP and Javascript files as well; will I have to do something special for them? Eric, thanks for chiming in. I'll try your "script" and reply. -- Don Dwiggins Advanced Publishing Technology ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: ECB 2.40 released!eric@... wrote:
> Hi, > > It does seem like the python initialization is having some trouble > loading old cache files. I'd like to recommend Don try the following: > > 1) Erase the contents of ~/.semanticdb > If this is on windows, Emacs can expand that path for you. Hmm, the ~ directory doesn't have a .semanticdb; there is a .semantic-cache, though; I deleted it. > > 2) Start Emacs (w/out ECB) and load in a python file that has trouble. > Does it initialize ok? Yes, it does. > 3) If so (I'm guessing it will) exit Emacs. > > 4) Start Emacs again. Does it now have the problem? If so, do: No, no problem. I did find a different problem, however: I was using the ELSE package (Emacs language-sensitive editor) for templating; I disabled it, and I'm getting the methods buffer loaded with no problem. (I notice that there's a templating facility in CEDET; maybe I'll try to make it work.) I also found, though, that I had (imenu-add-menubar-index) in my python-mode-hook, and it seemed to mess up the methods buffer; when I disabled it, the buffer worked with no problem. I'd like to have that menu back, but I'm guessing I have to set something in semantic or ECB. So, the only remaining problem is that the methods buffer still expands whenever I start to edit. (Adding (require 'python) doesn't help.) Thanks for the help, -- Don Dwiggins Advanced Publishing Technology ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Using the partial reparse hook within ECB! (was: AW: ECB 2.40 released!)Hi
@Eric: i added you to this thread because IMHO we need your expertice and knowledge and advice ... >So, the only remaining problem is that the methods buffer still expands whenever I start to edit. (Adding (require >'python) doesn't help.) Well, the (require 'python) was only meant to setup python-mode correctly fopr you... Collapsing/expanding tags when you are editing: Each time semantic decides that the buffer has to be reparsed to update the current tag-list to the current buffer contents semantic calls a hook which then in turn updates the ECB-methods window and rebuilds it completely which in turn displays all tags with their default-expand-state (which can be influenced by the options `ecb-type-tag-expansion' and `ecb-show-tags' - see the docstrings)... BUT: To be honest, concerning this topic the problem is in ECB not in semantic, at least partly (Eric, nice to hear, isn't it? ;-)...the description above is only half of the story: semantic offers two hooks where tools like ECB can hook in to update their stuff when semantic performs a reparse, one of them is the `semantic-after-partial-cache-change-hook'. And now we came to one of the biggest TODOs on my TODO-list, unfortunately i have no really good idea about a solution - and now Eric, you can chip in ;-) This partial-hook of semantic offers exactly these tags which must be updated not the whole tag-list of the whole buffer - fine - exactly what we would need not to update the whole ecb-window but only these nodes which represent the updated tags - if this would work the collapse-state of all other nodes would be untouched and the problem of Don would have been gone...unfortunately it's quite impossible for ECB to identify these nodes in ist ECB-window which represent the new update-tag-list offered by the partial hook. @Don: probably the rest isn't very intersting for you, therefore here one short fact for you: your collaps/expand-problem is a known annoying behavior in current ECB and there is no solution - but maybe in the njext releases - but for this i have to discuss with Eric..... @Eric: maybe it's the best i show you the current function ECB adds to the partial-reparse hook, because there are already some comments about the problem: (defun ecb-update-after-partial-reparse (updated-tags) "Updates the method buffer and all internal ECB-caches after a partial semantic-reparse. This function is added to the hook `semantic-after-partial-cache-change-hook'." ;; TODO: Currently we get simply the whole cache from semantic (already up ;; to date at this time!) and then we rebuild the whole tree-buffer with ;; this cache-contents. This is slow for big sources. We should implement ;; a mechanism where only the UPDATED-TAGS are used and only this ones are ;; updated. ;; TODO: Klaus Berndl <klaus.berndl@...>: here we could check if ;; UPDATED-TAGS contains only one tag and if this tag contains no childrens ;; then we could use the new function `tree-buffer-update-node' to simply ;; updating the associated node instead of a full reparse and then full ;; tree-buffer-update. (if (and (= 1 (length updated-tags)) (null (ecb-children-tags (car updated-tags)))) ;; TODO: Klaus Berndl <klaus.berndl@...>: ;; we could update this single node if we can find this node. But this ;; could be difficult (or impossible?) because here we only know the new ;; semantic-tag but our nodes contain only outdated semantic-tags as ;; data so how to find the associated node??!! ;; Maybe we could search the node which contaisn the parent-tag of the ;; updated tag and then we compute the position p of this tag in the list ;; of the children of its parent-tag and then we update that node which ;; comes on the same position p in the list of childrens of the ;; associated parent-node - hmm, but can we be sure that the sequence of ;; children-tags and children-nodes is the same?? probably not because ;; the nodes are ordered alphabetically and the tags are are ordered in ;; that sequence they are code in the source-buffer! Hmmm........... ;; Until this question is solved we must use the full reparse/rebuild ;; :-( One possible solution: tempor. ordering the ;; semantic-tag-childrens by name and getting the position p of the ;; updated tag in that ordered tag-sequence... (ecb-rebuild-methods-buffer-with-tagcache (ecb-fetch-semantic-tags)) (ecb-rebuild-methods-buffer-with-tagcache (ecb-fetch-semantic-tags)))) You see what is my problem?`How to identify these nodes in the methods-tree-buffer which holds as data an *OLD* outdated semantic-tag but should be updated with a new reparsed tag supplied by your partial-hook? Example: let's say the buffer contains a function named "XXX" which has been renamed to "XXXX" - then i suppose semamtic runs only a partial reparse and the partial hook would suply exactly this new tag with a new tag-name "XXX" - how could ECB know that for this tag the tree-buffer-node representing the old tag "XXX" should be updated with new tag-data "XXXX"??? IMHO quite impossible at least not really reliable... The only solution which came in my mind is: Could semantic supply not only the new tags but also the old ones which have been infected by the partial reparse. In our example: semantic would not only supply the new tag "XXXX" but additionaly the old one "XXX" too. Would this be possible (AFAICS semantic should be able to access to old tag, right or false)? If possible then the next question is: what is the best data-structure? A) simply a new optional argument old-updated-tags for partial-hook functions which contains the old tags for these tags which have been reparsed - complete new added tags (for which no old one has existed) would have no equivalent in this new optional argument... B) a complete new structure for update-tags, e.g. a cons: where the car is a new tag and the cdr is the old equivalent, where the cdr can be nil for complete new tags (e.g. added function).. Advantage of B) the exact correlation between new tag and old tag is much easier... Eric, two questions? 1) Is my description of the problem understandable for you? 2) Can we solve this problem? Thanks! Ciao, Klaus ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: Using the partial reparse hook within ECB! (was: AW: ECB2.40 released!)Another idea for the problem: maybe we could add to a semantic-tag a new slot :tag-id which would be a generated unique (within the full taglist of a buffer) ID (e.g. a number) - this ID would and MUST be unchanged even if the tag itself has been reparsed and so e.g. a new tag-name -
Example: suppose we have a class CCC with two methods MM1 and MM2. Tag for CCC has :tag-id 1, MM1 has :tag-id 2 and MM2 has :tag-id 3 Now we rename method MM1 to MM2, this means that method MM1 will be reparsed an gets a new tag-name MM2 but the :tag-id is still 2 Or we add a new parameter to MM1, here the same, MM1 must be reparsed but :tag-id is still 2... If we add a new method MM3 then this new method gets a :tag-id 4. But in this case the class CCC itself is reparsed and the tag must be updated because it has a new function-children... But the :tag_id of CCC is still 1... Then there is no need to change the semanztic of the partial-reparse hook: still only one argument: the list of updated tags - but now ECB can check the :tag-id of each tag and search in ist tree-buffer for a tree-node which has as data a semantic-tag which has the same :tag-id as a new updated tag - this tree-node must be updated.... The only things we would need: - An ID-generator in semantc (should not be so hard) - a new tag-slot :tag-id and a getter and setter-method (should be simple) - some changes in the tag-fetching/creating/updating-mechanism within semantic (can not judge the needed effort) - some small changes in ECB - but should be not so hard, most things i need are already there... Eric, please tell me (in a hard and direct manner ;-) if this is nonsense what i have suggested? I'm not deep enough in your reparse/update-mechanism but currently this sounds good in my ears ;-) Thoughts? BTW: how speedbar deals with partial hook-updates (e.g. triggered by the idle-scheduler)?? Ciao, klaus -----Ursprüngliche Nachricht----- Von: klaus.berndl@... [mailto:klaus.berndl@...] Gesendet: Mittwoch, 20. Mai 2009 09:30 An: ddwiggins@...; ecb-list@...; eric@... Cc: cedet-devel@... Betreff: [ECB-list] Using the partial reparse hook within ECB! (was: AW: ECB2.40 released!) Hi @Eric: i added you to this thread because IMHO we need your expertice and knowledge and advice ... >So, the only remaining problem is that the methods buffer still expands >whenever I start to edit. (Adding (require >'python) doesn't help.) Well, the (require 'python) was only meant to setup python-mode correctly fopr you... Collapsing/expanding tags when you are editing: Each time semantic decides that the buffer has to be reparsed to update the current tag-list to the current buffer contents semantic calls a hook which then in turn updates the ECB-methods window and rebuilds it completely which in turn displays all tags with their default-expand-state (which can be influenced by the options `ecb-type-tag-expansion' and `ecb-show-tags' - see the docstrings)... BUT: To be honest, concerning this topic the problem is in ECB not in semantic, at least partly (Eric, nice to hear, isn't it? ;-)...the description above is only half of the story: semantic offers two hooks where tools like ECB can hook in to update their stuff when semantic performs a reparse, one of them is the `semantic-after-partial-cache-change-hook'. And now we came to one of the biggest TODOs on my TODO-list, unfortunately i have no really good idea about a solution - and now Eric, you can chip in ;-) This partial-hook of semantic offers exactly these tags which must be updated not the whole tag-list of the whole buffer - fine - exactly what we would need not to update the whole ecb-window but only these nodes which represent the updated tags - if this would work the collapse-state of all other nodes would be untouched and the problem of Don would have been gone...unfortunately it's quite impossible for ECB to identify these nodes in ist ECB-window which represent the new update-tag-list offered by the partial hook. @Don: probably the rest isn't very intersting for you, therefore here one short fact for you: your collaps/expand-problem is a known annoying behavior in current ECB and there is no solution - but maybe in the njext releases - but for this i have to discuss with Eric..... @Eric: maybe it's the best i show you the current function ECB adds to the partial-reparse hook, because there are already some comments about the problem: (defun ecb-update-after-partial-reparse (updated-tags) "Updates the method buffer and all internal ECB-caches after a partial semantic-reparse. This function is added to the hook `semantic-after-partial-cache-change-hook'." ;; TODO: Currently we get simply the whole cache from semantic (already up ;; to date at this time!) and then we rebuild the whole tree-buffer with ;; this cache-contents. This is slow for big sources. We should implement ;; a mechanism where only the UPDATED-TAGS are used and only this ones are ;; updated. ;; TODO: Klaus Berndl <klaus.berndl@...>: here we could check if ;; UPDATED-TAGS contains only one tag and if this tag contains no childrens ;; then we could use the new function `tree-buffer-update-node' to simply ;; updating the associated node instead of a full reparse and then full ;; tree-buffer-update. (if (and (= 1 (length updated-tags)) (null (ecb-children-tags (car updated-tags)))) ;; TODO: Klaus Berndl <klaus.berndl@...>: ;; we could update this single node if we can find this node. But this ;; could be difficult (or impossible?) because here we only know the new ;; semantic-tag but our nodes contain only outdated semantic-tags as ;; data so how to find the associated node??!! ;; Maybe we could search the node which contaisn the parent-tag of the ;; updated tag and then we compute the position p of this tag in the list ;; of the children of its parent-tag and then we update that node which ;; comes on the same position p in the list of childrens of the ;; associated parent-node - hmm, but can we be sure that the sequence of ;; children-tags and children-nodes is the same?? probably not because ;; the nodes are ordered alphabetically and the tags are are ordered in ;; that sequence they are code in the source-buffer! Hmmm........... ;; Until this question is solved we must use the full reparse/rebuild ;; :-( One possible solution: tempor. ordering the ;; semantic-tag-childrens by name and getting the position p of the ;; updated tag in that ordered tag-sequence... (ecb-rebuild-methods-buffer-with-tagcache (ecb-fetch-semantic-tags)) (ecb-rebuild-methods-buffer-with-tagcache (ecb-fetch-semantic-tags)))) You see what is my problem?`How to identify these nodes in the methods-tree-buffer which holds as data an *OLD* outdated semantic-tag but should be updated with a new reparsed tag supplied by your partial-hook? Example: let's say the buffer contains a function named "XXX" which has been renamed to "XXXX" - then i suppose semamtic runs only a partial reparse and the partial hook would suply exactly this new tag with a new tag-name "XXX" - how could ECB know that for this tag the tree-buffer-node representing the old tag "XXX" should be updated with new tag-data "XXXX"??? IMHO quite impossible at least not really reliable... The only solution which came in my mind is: Could semantic supply not only the new tags but also the old ones which have been infected by the partial reparse. In our example: semantic would not only supply the new tag "XXXX" but additionaly the old one "XXX" too. Would this be possible (AFAICS semantic should be able to access to old tag, right or false)? If possible then the next question is: what is the best data-structure? A) simply a new optional argument old-updated-tags for partial-hook functions which contains the old tags for these tags which have been reparsed - complete new added tags (for which no old one has existed) would have no equivalent in this new optional argument... B) a complete new structure for update-tags, e.g. a cons: where the car is a new tag and the cdr is the old equivalent, where the cdr can be nil for complete new tags (e.g. added function).. Advantage of B) the exact correlation between new tag and old tag is much easier... Eric, two questions? 1) Is my description of the problem understandable for you? 2) Can we solve this problem? Thanks! Ciao, Klaus ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: Using the partial reparse hook within ECB! (was: AW: ECB2.40 released!)Hi Klaus,
On tag IDs, there is something like the tag ID, though much more subtle. It is the cons cell that is the tag. When a tag is reparsed, the cons cell is recycled, so you can ask is this tag T eq to stored tag sT. The tag id would be a challenge to keep straight, since you can't associated a number a names (names change), and you can't associate them with tag order, since new tags are inserted frequently, and you can't associate them with buffer position, since that certainly moves around a lot. What you can do, that might be quite easy for ECB, is you can store your own ECB data as a property on the tag. Properties are available for applications to use to keep track of things, and are kept whenever a tag is recycled. Thus, you could put a property into a tag saying "I'm open" so when a refresh occurs, you can keep it open or closed. This is even better than using the cons cell, since you would know if a tag was seen by you before. Does that help? Dave P. and I debated how to track this info many times, and found no happy solution. Speedbar just keeps it's old cache around until you ask it to refresh the tags. I think this might also help with your other question too. The partial reparse hook is good when your application treats each tag as an individual. (ie, tag decoration mode). You would need to use tag properties to keep track of your tags if you want to use it for the tag list as a group. Eric On Wed, 2009-05-20 at 11:11 +0200, klaus.berndl@... wrote: > Another idea for the problem: maybe we could add to a semantic-tag a new slot :tag-id which would be a generated unique (within the full taglist of a buffer) ID (e.g. a number) - this ID would and MUST be unchanged even if the tag itself has been reparsed and so e.g. a new tag-name - > > Example: suppose we have a class CCC with two methods MM1 and MM2. > > Tag for CCC has :tag-id 1, MM1 has :tag-id 2 and MM2 has :tag-id 3 > > Now we rename method MM1 to MM2, this means that method MM1 will be reparsed an gets a new tag-name MM2 but the :tag-id is still 2 > Or we add a new parameter to MM1, here the same, MM1 must be reparsed but :tag-id is still 2... > > If we add a new method MM3 then this new method gets a :tag-id 4. But in this case the class CCC itself is reparsed and the tag must be updated because it has a new function-children... But the :tag_id of CCC is still 1... > > Then there is no need to change the semanztic of the partial-reparse hook: still only one argument: the list of updated tags - but now ECB can check the :tag-id of each tag and search in ist tree-buffer for a tree-node which has as data a semantic-tag which has the same :tag-id as a new updated tag - this tree-node must be updated.... > > The only things we would need: > - An ID-generator in semantc (should not be so hard) > - a new tag-slot :tag-id and a getter and setter-method (should be simple) > - some changes in the tag-fetching/creating/updating-mechanism within semantic (can not judge the needed effort) > - some small changes in ECB - but should be not so hard, most things i need are already there... > > Eric, please tell me (in a hard and direct manner ;-) if this is nonsense what i have suggested? I'm not deep enough in your reparse/update-mechanism but currently this sounds good in my ears ;-) > > Thoughts? > > BTW: how speedbar deals with partial hook-updates (e.g. triggered by the idle-scheduler)?? > > Ciao, > klaus > > -----Ursprüngliche Nachricht----- > Von: klaus.berndl@... [mailto:klaus.berndl@...] > Gesendet: Mittwoch, 20. Mai 2009 09:30 > An: ddwiggins@...; ecb-list@...; eric@... > Cc: cedet-devel@... > Betreff: [ECB-list] Using the partial reparse hook within ECB! (was: AW: ECB2.40 released!) > > Hi > > @Eric: i added you to this thread because IMHO we need your expertice and knowledge and advice ... > > >So, the only remaining problem is that the methods buffer still expands > >whenever I start to edit. (Adding (require > >'python) doesn't help.) > > Well, the (require 'python) was only meant to setup python-mode correctly fopr you... > > Collapsing/expanding tags when you are editing: > > Each time semantic decides that the buffer has to be reparsed to update the current tag-list to the current buffer contents semantic calls a hook which then in turn updates the ECB-methods window and rebuilds it completely which in turn displays all tags with their default-expand-state (which can be influenced by the options `ecb-type-tag-expansion' and `ecb-show-tags' - see the docstrings)... > > BUT: To be honest, concerning this topic the problem is in ECB not in semantic, at least partly (Eric, nice to hear, isn't it? ;-)...the description above is only half of the story: semantic offers two hooks where tools like ECB can hook in to update their stuff when semantic performs a reparse, one of them is the `semantic-after-partial-cache-change-hook'. And now we came to one of the biggest TODOs on my TODO-list, unfortunately i have no really good idea about a solution - and now Eric, you can chip in ;-) > > This partial-hook of semantic offers exactly these tags which must be updated not the whole tag-list of the whole buffer - fine - exactly what we would need not to update the whole ecb-window but only these nodes which represent the updated tags - if this would work the collapse-state of all other nodes would be untouched and the problem of Don would have been gone...unfortunately it's quite impossible for ECB to identify these nodes in ist ECB-window which represent the new update-tag-list offered by the partial hook. > > @Don: probably the rest isn't very intersting for you, therefore here one short fact for you: your collaps/expand-problem is a known annoying behavior in current ECB and there is no solution - but maybe in the njext releases - but for this i have to discuss with Eric..... > > @Eric: maybe it's the best i show you the current function ECB adds to the partial-reparse hook, because there are already some comments about the problem: > > (defun ecb-update-after-partial-reparse (updated-tags) > "Updates the method buffer and all internal ECB-caches after a partial semantic-reparse. This function is added to the hook `semantic-after-partial-cache-change-hook'." > ;; TODO: Currently we get simply the whole cache from semantic (already up > ;; to date at this time!) and then we rebuild the whole tree-buffer with > ;; this cache-contents. This is slow for big sources. We should implement > ;; a mechanism where only the UPDATED-TAGS are used and only this ones are > ;; updated. > > ;; TODO: Klaus Berndl <klaus.berndl@...>: here we could check if > ;; UPDATED-TAGS contains only one tag and if this tag contains no childrens > ;; then we could use the new function `tree-buffer-update-node' to simply > ;; updating the associated node instead of a full reparse and then full > ;; tree-buffer-update. > (if (and (= 1 (length updated-tags)) > (null (ecb-children-tags (car updated-tags)))) > ;; TODO: Klaus Berndl <klaus.berndl@...>: > ;; we could update this single node if we can find this node. But this > ;; could be difficult (or impossible?) because here we only know the new > ;; semantic-tag but our nodes contain only outdated semantic-tags as > ;; data so how to find the associated node??!! > ;; Maybe we could search the node which contaisn the parent-tag of the > ;; updated tag and then we compute the position p of this tag in the list > ;; of the children of its parent-tag and then we update that node which > ;; comes on the same position p in the list of childrens of the > ;; associated parent-node - hmm, but can we be sure that the sequence of > ;; children-tags and children-nodes is the same?? probably not because > ;; the nodes are ordered alphabetically and the tags are are ordered in > ;; that sequence they are code in the source-buffer! Hmmm........... > ;; Until this question is solved we must use the full reparse/rebuild > ;; :-( One possible solution: tempor. ordering the > ;; semantic-tag-childrens by name and getting the position p of the > ;; updated tag in that ordered tag-sequence... > (ecb-rebuild-methods-buffer-with-tagcache (ecb-fetch-semantic-tags)) > (ecb-rebuild-methods-buffer-with-tagcache (ecb-fetch-semantic-tags)))) > > You see what is my problem?`How to identify these nodes in the methods-tree-buffer which holds as data an *OLD* outdated semantic-tag but should be updated with a new reparsed tag supplied by your partial-hook? > Example: let's say the buffer contains a function named "XXX" which has been renamed to "XXXX" - then i suppose semamtic runs only a partial reparse and the partial hook would suply exactly this new tag with a new tag-name "XXX" - how could ECB know that for this tag the tree-buffer-node representing the old tag "XXX" should be updated with new tag-data "XXXX"??? IMHO quite impossible at least not really reliable... > > The only solution which came in my mind is: Could semantic supply not only the new tags but also the old ones which have been infected by the partial reparse. In our example: semantic would not only supply the new tag "XXXX" but additionaly the old one "XXX" too. Would this be possible (AFAICS semantic should be able to access to old tag, right or false)? If possible then the next question is: what is the best data-structure? > A) simply a new optional argument old-updated-tags for partial-hook functions which contains the old tags for these tags which have been reparsed - complete new added tags (for which no old one has existed) would have no equivalent in this new optional argument... > B) a complete new structure for update-tags, e.g. a cons: where the car is a new tag and the cdr is the old equivalent, where the cdr can be nil for complete new tags (e.g. added function).. > > Advantage of B) the exact correlation between new tag and old tag is much easier... > > Eric, two questions? > 1) Is my description of the problem understandable for you? > 2) Can we solve this problem? > > Thanks! > > Ciao, > Klaus > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > Ecb-list mailing list > Ecb-list@... > https://lists.sourceforge.net/lists/listinfo/ecb-list ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
|
|
Re: Using the partial reparse hook within ECB! (was: AW: ECB2.40 released!)Hi Eric,
Wow, sounds pretty good... But first some questions: I found these function in semantic-tag.el ;; These functions are for internal use only! (defsubst semantic--tag-properties-cdr (tag) ) (defun semantic--tag-put-property (tag property value) ) (defun semantic--tag-put-property-no-side-effect (tag property value) ) (defsubst semantic--tag-get-property (tag property) ) (defun semantic-tag-file-name (tag) ) Q1: There is a comment that these functions are for internal use only - what does this mean for ECB? Is it reliable when ECB uses these functions for that needs you suggested?? Q2: Are these the right functions - which ones i would need - i assume semantic--tag-put-property and semantic--tag-get-property - what about semantic--tag-put-property-no-side-effect? If i have undrestood you in the right way, this is not the right one for my needs, right? Q3: are properties stored permanantly in the semanticdb and semantic.caches? I assume not. So when a buffer is opened then all tags are without any private properties right? Just to get sure, is fine for me and ECB Q4: is there any example out for the right usage of these functions, ie. A "real live" example? ;-) In the info-manual of semantic i fund only the function-description, i.e. there docstrings.... Q5: my approach would be: 1. i add to semantic-after-partial-cache-change-hook and semantic-after-cache-change-hook the same function which always gets the full tag-list after a reparse (maybe from the semantic-cache or fully reparsed, anyway) 2. This function creates for each tag an appropriate tree-node and adds the identifier for this tree-node as property-value for a new ECB-property like 'ECB-tree-node which indicates, that this tag is displayed in the tree-buffer and in which tree-node. After that this property is stored in the tag itself, right? The modified tag is stored in the :data-slot the tree-node itself. 3. Then i build up the tree-buffer of ECB based on the tree-nodes of step 2 und display the tree-buffer <4. the user does some editing> 5. some tags are updated by semantic 6. The hooks of step 1 above are called and ECB gets again the full tag-list for current source-buffer 7. i check if a tag contains the ECB-property 'ECB-tree-node and get so the information if the tag is currently already represented by a tree-node and by which tree-node - if yes, then i can easily update the tree-node with the modified tag-data .... Is this somehow right, is it that what you want to suggest? If yes, then this is pretty cool idea and should be not so hard to implement... Thanks a lot for your prompt help! Klaus -----Ursprüngliche Nachricht----- Von: Eric M. Ludlam [mailto:eric@...] Gesendet: Mittwoch, 20. Mai 2009 13:22 An: Berndl, Klaus Cc: ddwiggins@...; ecb-list@...; cedet-devel@... Betreff: Re: AW: [ECB-list] Using the partial reparse hook within ECB! (was: AW: ECB2.40 released!) Hi Klaus, On tag IDs, there is something like the tag ID, though much more subtle. It is the cons cell that is the tag. When a tag is reparsed, the cons cell is recycled, so you can ask is this tag T eq to stored tag sT. The tag id would be a challenge to keep straight, since you can't associated a number a names (names change), and you can't associate them with tag order, since new tags are inserted frequently, and you can't associate them with buffer position, since that certainly moves around a lot. What you can do, that might be quite easy for ECB, is you can store your own ECB data as a property on the tag. Properties are available for applications to use to keep track of things, and are kept whenever a tag is recycled. Thus, you could put a property into a tag saying "I'm open" so when a refresh occurs, you can keep it open or closed. This is even better than using the cons cell, since you would know if a tag was seen by you before. Does that help? Dave P. and I debated how to track this info many times, and found no happy solution. Speedbar just keeps it's old cache around until you ask it to refresh the tags. I think this might also help with your other question too. The partial reparse hook is good when your application treats each tag as an individual. (ie, tag decoration mode). You would need to use tag properties to keep track of your tags if you want to use it for the tag list as a group. Eric On Wed, 2009-05-20 at 11:11 +0200, klaus.berndl@... wrote: > Another idea for the problem: maybe we could add to a semantic-tag a > new slot :tag-id which would be a generated unique (within the full > taglist of a buffer) ID (e.g. a number) - this ID would and MUST be > unchanged even if the tag itself has been reparsed and so e.g. a new > tag-name - > > Example: suppose we have a class CCC with two methods MM1 and MM2. > > Tag for CCC has :tag-id 1, MM1 has :tag-id 2 and MM2 has :tag-id 3 > > Now we rename method MM1 to MM2, this means that method MM1 will be > reparsed an gets a new tag-name MM2 but the :tag-id is still 2 Or we add a new parameter to MM1, here the same, MM1 must be reparsed but :tag-id is still 2... > > If we add a new method MM3 then this new method gets a :tag-id 4. But in this case the class CCC itself is reparsed and the tag must be updated because it has a new function-children... But the :tag_id of CCC is still 1... > > Then there is no need to change the semanztic of the partial-reparse hook: still only one argument: the list of updated tags - but now ECB can check the :tag-id of each tag and search in ist tree-buffer for a tree-node which has as data a semantic-tag which has the same :tag-id as a new updated tag - this tree-node must be updated.... > > The only things we would need: > - An ID-generator in semantc (should not be so hard) > - a new tag-slot :tag-id and a getter and setter-method (should be > simple) > - some changes in the tag-fetching/creating/updating-mechanism within > semantic (can not judge the needed effort) > - some small changes in ECB - but should be not so hard, most things i need are already there... > > Eric, please tell me (in a hard and direct manner ;-) if this is > nonsense what i have suggested? I'm not deep enough in your > reparse/update-mechanism but currently this sounds good in my ears ;-) > > Thoughts? > > BTW: how speedbar deals with partial hook-updates (e.g. triggered by the idle-scheduler)?? > > Ciao, > klaus > > -----Ursprüngliche Nachricht----- > Von: klaus.berndl@... > [mailto:klaus.berndl@...] > Gesendet: Mittwoch, 20. Mai 2009 09:30 > An: ddwiggins@...; ecb-list@...; > eric@... > Cc: cedet-devel@... > Betreff: [ECB-list] Using the partial reparse hook within ECB! (was: > AW: ECB2.40 released!) > > Hi > > @Eric: i added you to this thread because IMHO we need your expertice and knowledge and advice ... > > >So, the only remaining problem is that the methods buffer still > >expands whenever I start to edit. (Adding (require > >'python) doesn't help.) > > Well, the (require 'python) was only meant to setup python-mode correctly fopr you... > > Collapsing/expanding tags when you are editing: > > Each time semantic decides that the buffer has to be reparsed to update the current tag-list to the current buffer contents semantic calls a hook which then in turn updates the ECB-methods window and rebuilds it completely which in turn displays all tags with their default-expand-state (which can be influenced by the options `ecb-type-tag-expansion' and `ecb-show-tags' - see the docstrings)... > > BUT: To be honest, concerning this topic the problem is in ECB not in > semantic, at least partly (Eric, nice to hear, isn't it? ;-)...the > description above is only half of the story: semantic offers two hooks > where tools like ECB can hook in to update their stuff when semantic > performs a reparse, one of them is the > `semantic-after-partial-cache-change-hook'. And now we came to one of > the biggest TODOs on my TODO-list, unfortunately i have no really good > idea about a solution - and now Eric, you can chip in ;-) > > This partial-hook of semantic offers exactly these tags which must be updated not the whole tag-list of the whole buffer - fine - exactly what we would need not to update the whole ecb-window but only these nodes which represent the updated tags - if this would work the collapse-state of all other nodes would be untouched and the problem of Don would have been gone...unfortunately it's quite impossible for ECB to identify these nodes in ist ECB-window which represent the new update-tag-list offered by the partial hook. > > @Don: probably the rest isn't very intersting for you, therefore here one short fact for you: your collaps/expand-problem is a known annoying behavior in current ECB and there is no solution - but maybe in the njext releases - but for this i have to discuss with Eric..... > > @Eric: maybe it's the best i show you the current function ECB adds to the partial-reparse hook, because there are already some comments about the problem: > > (defun ecb-update-after-partial-reparse (updated-tags) > "Updates the method buffer and all internal ECB-caches after a partial semantic-reparse. This function is added to the hook `semantic-after-partial-cache-change-hook'." > ;; TODO: Currently we get simply the whole cache from semantic (already up > ;; to date at this time!) and then we rebuild the whole tree-buffer with > ;; this cache-contents. This is slow for big sources. We should implement > ;; a mechanism where only the UPDATED-TAGS are used and only this ones are > ;; updated. > > ;; TODO: Klaus Berndl <klaus.berndl@...>: here we could check if > ;; UPDATED-TAGS contains only one tag and if this tag contains no childrens > ;; then we could use the new function `tree-buffer-update-node' to simply > ;; updating the associated node instead of a full reparse and then full > ;; tree-buffer-update. > (if (and (= 1 (length updated-tags)) > (null (ecb-children-tags (car updated-tags)))) > ;; TODO: Klaus Berndl <klaus.berndl@...>: > ;; we could update this single node if we can find this node. But this > ;; could be difficult (or impossible?) because here we only know the new > ;; semantic-tag but our nodes contain only outdated semantic-tags as > ;; data so how to find the associated node??!! > ;; Maybe we could search the node which contaisn the parent-tag of the > ;; updated tag and then we compute the position p of this tag in the list > ;; of the children of its parent-tag and then we update that node which > ;; comes on the same position p in the list of childrens of the > ;; associated parent-node - hmm, but can we be sure that the sequence of > ;; children-tags and children-nodes is the same?? probably not because > ;; the nodes are ordered alphabetically and the tags are are ordered in > ;; that sequence they are code in the source-buffer! Hmmm........... > ;; Until this question is solved we must use the full reparse/rebuild > ;; :-( One possible solution: tempor. ordering the > ;; semantic-tag-childrens by name and getting the position p of the > ;; updated tag in that ordered tag-sequence... > (ecb-rebuild-methods-buffer-with-tagcache (ecb-fetch-semantic-tags)) > (ecb-rebuild-methods-buffer-with-tagcache > (ecb-fetch-semantic-tags)))) > > You see what is my problem?`How to identify these nodes in the methods-tree-buffer which holds as data an *OLD* outdated semantic-tag but should be updated with a new reparsed tag supplied by your partial-hook? > Example: let's say the buffer contains a function named "XXX" which has been renamed to "XXXX" - then i suppose semamtic runs only a partial reparse and the partial hook would suply exactly this new tag with a new tag-name "XXX" - how could ECB know that for this tag the tree-buffer-node representing the old tag "XXX" should be updated with new tag-data "XXXX"??? IMHO quite impossible at least not really reliable... > > The only solution which came in my mind is: Could semantic supply not only the new tags but also the old ones which have been infected by the partial reparse. In our example: semantic would not only supply the new tag "XXXX" but additionaly the old one "XXX" too. Would this be possible (AFAICS semantic should be able to access to old tag, right or false)? If possible then the next question is: what is the best data-structure? > A) simply a new optional argument old-updated-tags for partial-hook functions which contains the old tags for these tags which have been reparsed - complete new added tags (for which no old one has existed) would have no equivalent in this new optional argument... > B) a complete new structure for update-tags, e.g. a cons: where the car is a new tag and the cdr is the old equivalent, where the cdr can be nil for complete new tags (e.g. added function).. > > Advantage of B) the exact correlation between new tag and old tag is much easier... > > Eric, two questions? > 1) Is my description of the problem understandable for you? > 2) Can we solve this problem? > > Thanks! > > Ciao, > Klaus > > ---------------------------------------------------------------------- > -------- Crystal Reports - New Free Runtime and 30 Day Trial Check out > the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > Ecb-list mailing list > Ecb-list@... > https://lists.sourceforge.net/lists/listinfo/ecb-list ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Ecb-list mailing list Ecb-list@... https://lists.sourceforge.net/lists/listinfo/ecb-list |
| < Prev | 1 - 2 | Next > |
| Free embeddable forum powered by Nabble | Forum Help |