bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CC Mode 5.27 (C++); Problems with imenu settings and topmost-intro


From: Robert Marshall
Subject: CC Mode 5.27 (C++); Problems with imenu settings and topmost-intro
Date: Fri, 27 Oct 2000 10:11:59 +0100

The following file with a setting of c-file-style "cc-mode" when using
imenu gives the error - not items suitable for an index.
If I remove the local variables c-file-offsets line and re-indent then
I get a more sensible list of functions in imenu. 

The regexps in cc-menus.el all have an embedded ^ for identifying
function/class names, I believe that they should take account of the
topmost-intro setting -this might force them to be buffer local.

The code from which this example is derived was not written by me
(i.e.the indentation is not mine) but in my attempts to understand/browse it,
it would be useful to have imenu working

Robert
---------------------------------------ccTest.ccp---------------------------
    template <typename c1, typename c2> 
    class forwardAssociate 
    {
            c2* c2ptr;
    public:
            forwardAssociate(c2* c2ref) 
                : c2ptr(c2ref)
            {}
            
            operator c1*() 
            {
                return reinterpret_cast<c1*>(c2ptr);
            }
    };
    
    
// ------CONSTRUCTOR(S):
    
        dra_Application::dra_Application(PSSHANDLE a_network) //: dra_Object 
(0) 
        {
                DefineDRAErrors();
        }
// Local Variables:
// c-file-style: "cc-mode"
// c-basic-offset: 4
// c-file-offsets:  ((topmost-intro .   +) (defun-open . +))
// End:
---------------------------------------end ccTest.cc---------------------------


Emacs  : GNU Emacs 20.7.1 (i386-*-nt4.0.1381)
 of Tue Jun 13 2000 on buffy
Package: CC Mode 5.27 (C++)
Buffer Style: cc-mode

c-emacs-features: (1-bit)

current state:
==============
(setq
 c-basic-offset 4
 c-comment-only-line-offset 0
 c-block-comment-prefix ""
 c-comment-prefix-regexp "//+\\|\\**"
 c-cleanup-list '(scope-operator)
 c-hanging-braces-alist '((brace-list-open) (brace-entry-open)
                          (substatement-open after)
                          (block-close . c-snug-do-while)
                          (extern-lang-open after) (inexpr-class-open after)
                          (inexpr-class-close before))
 c-hanging-colons-alist nil
 c-hanging-semi&comma-criteria '(c-semi&comma-inside-parenlist)
 c-backslash-column 48
 c-label-minimum-indentation 1
 c-offsets-alist '((string . c-lineup-dont-change)
                   (c . c-lineup-C-comments)
                   (defun-open . +)
                   (defun-close . 0)
                   (defun-block-intro . +)
                   (class-open . 0)
                   (class-close . 0)
                   (inline-close . 0)
                   (func-decl-cont . +)
                   (knr-argdecl . 0)
                   (topmost-intro . +)
                   (topmost-intro-cont . 0)
                   (member-init-intro . +)
                   (member-init-cont . c-lineup-multi-inher)
                   (inher-intro . +)
                   (inher-cont . c-lineup-multi-inher)
                   (block-open . 0)
                   (block-close . 0)
                   (brace-list-close . 0)
                   (brace-list-intro . +)
                   (brace-list-entry . 0)
                   (brace-entry-open . 0)
                   (statement . 0)
                   (statement-case-intro . +)
                   (substatement . +)
                   (case-label . 0)
                   (access-label . -)
                   (do-while-closure . 0)
                   (else-clause . 0)
                   (catch-clause . 0)
                   (comment-intro . c-lineup-comment)
                   (arglist-cont . 0)
                   (arglist-cont-nonempty . c-lineup-arglist)
                   (stream-op . c-lineup-streamop)
                   (inclass . +)
                   (cpp-macro . -1000)
                   (cpp-macro-cont . c-lineup-dont-change)
                   (friend . 0)
                   (objc-method-intro . -1000)
                   (objc-method-args-cont . c-lineup-ObjC-method-args)
                   (objc-method-call-cont . c-lineup-ObjC-method-call)
                   (extern-lang-open . 0)
                   (extern-lang-close . 0)
                   (inextern-lang . +)
                   (namespace-open . 0)
                   (namespace-close . 0)
                   (innamespace . +)
                   (template-args-cont c-lineup-template-args +)
                   (inlambda . c-lineup-inexpr-block)
                   (lambda-intro-cont . +)
                   (inexpr-statement . 0)
                   (inexpr-class . +)
                   (statement-block-intro . +)
                   (knr-argdecl-intro . +)
                   (substatement-open . +)
                   (label . 2)
                   (statement-case-open . 0)
                   (statement-cont . +)
                   (arglist-intro . +)
                   (arglist-close . +)
                   (inline-open . +)
                   (brace-list-open . 0)
                   )
 c-delete-function 'delete-char
 c-electric-pound-behavior nil
 c-indent-comments-syntactically-p nil
 c-tab-always-indent t
 defun-prompt-regexp nil
 tab-width 4
 comment-column 32
 parse-sexp-ignore-comments t
 auto-fill-function nil
 filladapt-mode nil
 comment-multi-line t
 comment-start-skip "/\\*+ *\\|//+ *"
 fill-prefix nil
 paragraph-start "[     ]*\\(//+\\|\\**\\)?[    ]*$\\|^\f"
 adaptive-fill-mode t
 adaptive-fill-regexp "[        ]*\\(//+\\|\\**\\)?[    ]*\\([  ]*\\([-|#;>*]+ 
*\\|(?[0-9]+[.)] *\\)*\\)"
 )

-- 
Robert Marshall





reply via email to

[Prev in Thread] Current Thread [Next in Thread]