O Cedet 1.1 com o Emacs 24.2 no Windows não pode analisar arquivos de cabeçalho c ++ sem extensão

1

Emacs 24.2, Cedet 1.1, Windows 7

Visual Studio 10.0 Incluir diretório

(add-to-list 'load-path " ~/.emacs.d/cedet-1.1/common")
(load-file "~/.emacs.d/cedet-1.1/common/cedet.el")

(semantic-load-enable-excessive-code-helpers)
(semantic-load-enable-semantic-debugging-helpers)

(require 'semantic-decorate-include)

(require 'semantic-ia)

(global-ede-mode nil)

(setq-mode-local c-mode semanticdb-find-default-throttle
                 '(project local unloaded system recursive))
(setq-mode-local c++-mode semanticdb-find-default-throttle
                 '(project local unloaded system recursive))

(semantic-add-system-include "C:/Program Files/Microsoft Visual Studio 10.0/VS/Include" 'c++-mode)

Ao escrever o programa c ++ e incluir, digamos, iostream , ele navega para esse arquivo de inclusão, mas não é capaz de analisá-lo. Por outro lado, quando incluir, digamos, stdlib.h , analisa com sucesso essa inclusão.

Como consertar isso?

    
por Ribtoks 11.03.2013 / 10:43

1 resposta

1

Encontrou alguma solução alternativa. Precisa dizer ao C lexer para analisar o Microsoft incluir arquivos com definições como esta

(defun windows-semantic-hook ()
    (setq microsoft-base-dir 
        "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include")
    (add-to-list 'semantic-lex-c-preprocessor-symbol-file 
               (concat microsoft-base-dir "/crtdefs.h"))
    (add-to-list 'semantic-lex-c-preprocessor-symbol-file 
               (concat microsoft-base-dir "/yvals.h"))
    (add-to-list 'semantic-lex-c-preprocessor-symbol-file 
               (concat microsoft-base-dir "/vadefs.h"))
    (add-to-list 'semantic-lex-c-preprocessor-symbol-file 
               (concat microsoft-base-dir "/comdefsp.h"))
    (semantic-add-system-include microsoft-base-dir 'c++-mode)
    (add-to-list 'auto-mode-alist (cons microsoft-base-dir 'c++-mode)))

(add-hook 'semantic-init-hooks 'windows-semantic-hook)

Agora o analisador semântico se sente melhor (mas não completamente bom) e é capaz de analisar algumas inclusões como <string> , <map> etc.

    
por 12.03.2013 / 11:41