imfreedom/gir-tools

A ton of work

2016-02-24, Gary Kramlich
7d979d896f64
Parents 83d89bba0694
Children 14d9f67ff383
A ton of work
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gir-tools.sublime-project Wed Feb 24 23:07:08 2016 -0600
@@ -0,0 +1,8 @@
+{
+ "folders":
+ [
+ {
+ "path": "."
+ }
+ ]
+}
--- a/gir2dot.xsl Wed Feb 24 18:22:02 2016 -0600
+++ b/gir2dot.xsl Wed Feb 24 23:07:08 2016 -0600
@@ -2,7 +2,9 @@
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:gir="http://www.gtk.org/introspection/core/1.0"
+ xmlns:exsl="http://exslt.org/common"
version="1.0"
+ exclude-result-prefixes="exsl"
>
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
@@ -15,22 +17,82 @@
<xsl:value-of select="$tab"/>
</xsl:variable>
- <xsl:template match="gir:method">
+ <xsl:template match="gir:property">
+ <xsl:value-of select="@name"/>
+ <xsl:text> : </xsl:text>
+ <xsl:value-of select="gir:type/@name"/>
+ <xsl:text>&lt;br/&gt;</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="gir:parameter">
<xsl:value-of select="@name"/>
- <xsl:text>\l</xsl:text>
+ <xsl:text> : </xsl:text>
+ <xsl:value-of select="gir:type/@name"/>
+ </xsl:template>
+
+ <xsl:template match="gir:instance-parameter"/>
+
+ <xsl:template match="gir:parameters">
+ <xsl:apply-templates select="(gir:instance-parameter|gir:parameter)"/>
+ </xsl:template>
+
+ <xsl:template name="common-method">
+ <xsl:param name="name"/>
+
+ <xsl:value-of select="$name"/>
+
+ <xsl:text> (</xsl:text>
+ <xsl:apply-templates select="gir:parameters"/>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="gir:return-value">
+ <xsl:text> : </xsl:text>
+ <xsl:value-of select="gir:return-value/gir:type/@name"/>
+ </xsl:if>
+
+ <xsl:text>&lt;br/&gt;</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="gir:method">
+ <xsl:call-template name="common-method">
+ <xsl:with-param name="name" select="@name"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <xsl:template match="gir:virtual-method">
+ <xsl:variable name="name">
+ <xsl:text>&lt;i&gt;</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>&lt;/i&gt;</xsl:text>
+ </xsl:variable>
+ <xsl:call-template name="common-method">
+ <xsl:with-param name="name" select="$name"/>
+ </xsl:call-template>
</xsl:template>
<xsl:template match="gir:class">
<xsl:value-of select="$tab"/>
<xsl:value-of select="@name"/>
- <xsl:text>[shape="record" label="{</xsl:text>
+ <xsl:text>[shape="none" label=&lt;&lt;table&gt;</xsl:text>
+
+ <xsl:text>&lt;tr&gt;&lt;td&gt;</xsl:text>
<xsl:value-of select="@name"/>
+
<xsl:if test="@abstract = '1'">
- <xsl:text>\n\&lt;\&lt;abstract \&gt;\&gt;</xsl:text>
+ <xsl:text>&lt;br/&gt;&lt;i&gt;abstract&lt;/i&gt;</xsl:text>
</xsl:if>
- <xsl:text>||</xsl:text>
- <xsl:apply-templates select="gir:method"/>
- <xsl:text>}"]</xsl:text>
+
+ <xsl:text>&lt;/td&gt;&lt;/tr&gt;</xsl:text>
+
+
+ <xsl:text>&lt;tr&gt;&lt;td&gt;</xsl:text>
+ <xsl:apply-templates select="gir:property"/>
+ <xsl:text>&lt;/td&gt;&lt;/tr&gt;</xsl:text>
+
+ <xsl:text>&lt;tr&gt;&lt;td&gt;</xsl:text>
+ <xsl:apply-templates select="(gir:method|gir:virtual-method)"/>
+ <xsl:text>&lt;/td&gt;&lt;/tr&gt;</xsl:text>
+
+ <xsl:text>&lt;/table&gt;&gt;]</xsl:text>
<xsl:value-of select="$newline"/>
</xsl:template>