Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Eidsness2013-11-28 20:23:42 +0000
committerDoug Schaefer2013-11-29 05:27:15 +0000
commit5e130ab883b6239ce9275b76036a2eea0e98d958 (patch)
tree5a9a57cf20235ca36a1726961e5f6faeffaa2bd8 /core/org.eclipse.cdt.core/schema
parent08c7d10763cae343176d74699cc732da13dfe6bf (diff)
downloadorg.eclipse.cdt-5e130ab883b6239ce9275b76036a2eea0e98d958.tar.gz
org.eclipse.cdt-5e130ab883b6239ce9275b76036a2eea0e98d958.tar.xz
org.eclipse.cdt-5e130ab883b6239ce9275b76036a2eea0e98d958.zip
Bug 422804: Allow contributors to add data to the PDOM
The CDT persists an index of source code relationships by processing the AST produced by the parser. There is an existing extension-point that allows contributors to create new linkages in this persisted file. However there is no mechanism allowing contributors to influence the data that is stored to the file. This introduces a new extension-point allowing contributors to participate in processing the AST that is being persisted to the index. The intent is for this to be used to store data into the contributor's new Linkage. There is no change in functionality for existing linkages. A contributor will soon be added in the Qt plugin. Change-Id: I845c90cbf7c713e23319e2ed1168eb7d74db5868 Signed-off-by: Andrew Eidsness <eclipse@jfront.com> Reviewed-on: https://git.eclipse.org/r/19089 Tested-by: Hudson CI Reviewed-by: Doug Schaefer <dschaefer@qnx.com> IP-Clean: Doug Schaefer <dschaefer@qnx.com>
Diffstat (limited to 'core/org.eclipse.cdt.core/schema')
-rw-r--r--core/org.eclipse.cdt.core/schema/PDOMASTProcessor.exsd131
1 files changed, 131 insertions, 0 deletions
diff --git a/core/org.eclipse.cdt.core/schema/PDOMASTProcessor.exsd b/core/org.eclipse.cdt.core/schema/PDOMASTProcessor.exsd
new file mode 100644
index 00000000000..fb087747692
--- /dev/null
+++ b/core/org.eclipse.cdt.core/schema/PDOMASTProcessor.exsd
@@ -0,0 +1,131 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.cdt.core" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.cdt.core" id="PDOMASTProcessor" name="PDOM AST Processor"/>
+ </appInfo>
+ <documentation>
+ This extension point allows extensions to contribute to the information that is written to the .pdom file. After the AST has been parsed, all contributors are provided a chance to process the AST&apos;s translation units while the .pdom is being updated.
+ </documentation>
+ </annotation>
+
+ <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="processor" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="processor">
+ <complexType>
+ <sequence>
+ <element ref="enablement" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.cdt.core.index.IPDOMASTProcessor"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 8.3
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of a Tagger contribution:
+&lt;p&gt;
+&lt;pre&gt;
+&lt;extension
+ point=&quot;org.eclipse.cdt.core.PDOMASTProcessor&quot;
+ id=&quot;example&quot;
+ name=&quot;Example PDOM AST Processor&quot;&gt;
+ &lt;bindingTagger
+ local-id=&quot;my-processor&quot;
+ class=&quot;com.example.internal.ExamplePDOMASTProcessor&quot;&gt;
+ &lt;enablement&gt;
+ &lt;with variable=&quot;projectNatures&quot;&gt;
+ &lt;iterate operator=&quot;or&quot;&gt;
+ &lt;equals value=&quot;com.example.my-nature&quot;/&gt;
+ &lt;/iterate&gt;
+ &lt;/with&gt;
+ &lt;/enablement&gt;
+ &lt;/bindingTagger&gt;
+&lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The contributed class must implement &lt;code&gt;org.eclipse.cdt.core.index.IPDOMASTProcessor&lt;/code&gt; interface.
+ </documentation>
+ </annotation>
+
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2013 QNX Software Systems and others.
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Eclipse Public License v1.0
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/epl-v10.html
+ </documentation>
+ </annotation>
+
+</schema>

Back to the top