[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/last-cedet-merge 5cb7aed 22/50: semantic: New c-mo
From: |
David Engster |
Subject: |
[Emacs-diffs] scratch/last-cedet-merge 5cb7aed 22/50: semantic: New c-mode override for analyzing tag type members |
Date: |
Wed, 25 Jan 2017 22:15:21 +0000 (UTC) |
branch: scratch/last-cedet-merge
commit 5cb7aed37f27bdfb90de5f62806dbd4665054fab
Author: Eric Ludlam <address@hidden>
Commit: David Engster <address@hidden>
semantic: New c-mode override for analyzing tag type members
* lisp/cedet/semantic/bovine/c.el (semantic-analyze-tag-type-members):
New override.
---
lisp/cedet/semantic/bovine/c.el | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el
index 48521f9..449a763 100644
--- a/lisp/cedet/semantic/bovine/c.el
+++ b/lisp/cedet/semantic/bovine/c.el
@@ -1872,6 +1872,23 @@ These are constants which are of type TYPE."
"Assemble the list of names NAMELIST into a namespace name."
(mapconcat 'identity namelist "::"))
+(define-mode-local-override semantic-analyze-tag-type-members c-mode (tag)
+ "Return a list of :members of TAG.
+Merges in all members of anonymous unions that are :members of TAG."
+ (let ((raw (semantic-tag-type-members tag))
+ (ans nil))
+ (dolist (T raw)
+ (cond ((and (semantic-tag-of-class-p T 'type)
+ (semantic-tag-of-type-p T "union")
+ (string= (semantic-tag-name T) ""))
+ ;; Merge in all the union members.
+ (dolist (Ts (semantic-analyze-tag-type-members T))
+ (setq ans (cons Ts ans))))
+ ;; Be default, just push the tag.
+ (t
+ (setq ans (cons T ans)))))
+ (nreverse ans)))
+
(define-mode-local-override semantic-ctxt-scoped-types c++-mode (&optional
point)
"Return a list of tags of CLASS type based on POINT.
DO NOT return the list of tags encompassing point."
- [Emacs-diffs] scratch/last-cedet-merge 47471b9 12/50: EDE: Add missing require and silence byte compiler, (continued)
- [Emacs-diffs] scratch/last-cedet-merge 47471b9 12/50: EDE: Add missing require and silence byte compiler, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 7308eaf 18/50: semantic: Accept FLAGS parameter for makefile-mode for analyzing completions, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge b4d1399 14/50: EDE: Rework config file detection, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 95f8a69 29/50: semantic: More C grammar optimizations, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge deaa8c9 24/50: semantic: New function to find library with macro definition, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 0391760 13/50: semantic: Do not strip '*' from operator, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 6ca095c 21/50: semantic: Add autoload for Add autoload for `semantic-analyze-debug-assist', David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge f3674d0 33/50: semantic: Parse C++ override/final correctly, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge fb127f2 34/50: semantic: C grammar fixes, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge cc30b46 11/50: EDE: Move ede-global-list-sanity-check to ede/files.el, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 5cb7aed 22/50: semantic: New c-mode override for analyzing tag type members,
David Engster <=
- [Emacs-diffs] scratch/last-cedet-merge c2d4ad8 23/50: semantic: Update keybinings for grammar mode, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 03c5f0d 25/50: semantic: Add more syntax modifications for scheme lexer, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 6b57c5b 20/50: semantic: Introduce `semantic-analyze-tag-type-members', David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 02644fe 36/50: semantic: Add missing save-excursion for scope calculation, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 50139fb 45/50: semantic: Fix scope calculation for 'enum', David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 03bb495 44/50: semantic: Fix for Python lexer, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 3cbb968 47/50: semantic: Use file name for grammar name instead of %package token, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 6d6b045 27/50: EDE: Improve Emacs project type, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 64484cf 43/50: semantic: Set `semantic-type-relation-separator-character' for Emacs Lisp, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge e698dc1 04/50: semantic: Add support for typedef references, David Engster, 2017/01/25