<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://bfwiki.tellefsen.net//index.php?action=history&amp;feed=atom&amp;title=Function_Reference_2</id>
	<title>Function Reference 2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://bfwiki.tellefsen.net//index.php?action=history&amp;feed=atom&amp;title=Function_Reference_2"/>
	<link rel="alternate" type="text/html" href="https://bfwiki.tellefsen.net//index.php?title=Function_Reference_2&amp;action=history"/>
	<updated>2026-04-13T12:36:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://bfwiki.tellefsen.net//index.php?title=Function_Reference_2&amp;diff=24&amp;oldid=prev</id>
		<title>Christian: New page: New function reference proposal:  Note: I&#039;ve used some things from WEML, but there are so many elements which I do not understand and some missing properties, so I&#039;ve decided to prepare na...</title>
		<link rel="alternate" type="text/html" href="https://bfwiki.tellefsen.net//index.php?title=Function_Reference_2&amp;diff=24&amp;oldid=prev"/>
		<updated>2008-10-26T22:19:10Z</updated>

		<summary type="html">&lt;p&gt;New page: New function reference proposal:  Note: I&amp;#039;ve used some things from WEML, but there are so many elements which I do not understand and some missing properties, so I&amp;#039;ve decided to prepare na...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;New function reference proposal:&lt;br /&gt;
&lt;br /&gt;
Note: I&amp;#039;ve used some things from WEML, but there are so many elements which I do not understand&lt;br /&gt;
and some missing properties, so I&amp;#039;ve decided to prepare native FR format for bluefish again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. ----------- General comments -----------------&lt;br /&gt;
&lt;br /&gt;
For now I distinguish three type of languages in FR:&lt;br /&gt;
  - programming (like PHP,Python etc.)&lt;br /&gt;
  - markup (HTML,XHTML)&lt;br /&gt;
  - CSS-type - I&amp;#039;ve included this because of difficulties encountered during CSS specification&lt;br /&gt;
&lt;br /&gt;
Each type of language has its own elements, so the main elements of function reference are:&lt;br /&gt;
 - functions - for programming languages&lt;br /&gt;
 - classes - for OO programming languages&lt;br /&gt;
 - tags - for markup&lt;br /&gt;
 - properties - for CSS&lt;br /&gt;
&lt;br /&gt;
Along with functional elements of language we need to describe actions which can be performed when&lt;br /&gt;
using FR in Bluefish. So far I&amp;#039;ve defined three type of actions:&lt;br /&gt;
 - show information&lt;br /&gt;
 - show input dialog with needed parameters and insert text&lt;br /&gt;
 - insert text immediately&lt;br /&gt;
&lt;br /&gt;
2. --------------- Reusable blocks ----------------&lt;br /&gt;
&lt;br /&gt;
To reduce the size of FR files we need a mechanism of reusable blocks (many parameters or attributes&lt;br /&gt;
are the same in functions or tags).&lt;br /&gt;
&lt;br /&gt;
3. ---------------- Visual grouping ---------------&lt;br /&gt;
&lt;br /&gt;
It has been proved (by usage) that functions or tags should be grouped when they are displayed in FR tree.&lt;br /&gt;
It helps with searching for specific element and gives us possibility of logical element ordering.&lt;br /&gt;
&lt;br /&gt;
4. ----------------- User interface --------------&lt;br /&gt;
&lt;br /&gt;
Here I would like to propose: a FR tree in left panel as it is implemented now plus information window, but&lt;br /&gt;
not that small which is in panel - rather something like output window below panel and text editing.&lt;br /&gt;
&lt;br /&gt;
5. ----------------- CSS specification -----------&lt;br /&gt;
&lt;br /&gt;
I need help with this. Tim tried to explain me some CSS issues, but I&amp;#039;m not using CSS, so please look at&lt;br /&gt;
format proposal below and help me create entries for CSS.&lt;br /&gt;
&lt;br /&gt;
6. ----------------  i18n ------------------------&lt;br /&gt;
&lt;br /&gt;
It would be great to have all reference translated to many languages. We can insert translations into&lt;br /&gt;
main reference file or prepare different files for every supported language - comments ?&lt;br /&gt;
&lt;br /&gt;
6. ---------------   Proposed format (revised) --------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref name&amp;lt;code&amp;gt;\&amp;quot;\&amp;quot; description&amp;lt;/code&amp;gt;\&amp;quot;\&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039; This is reference root element&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;note title=\&amp;quot;\&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039; Any note you want to present for reference &amp;#039;&amp;#039;&amp;#039;&amp;lt;/note&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;group name=\&amp;quot;\&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
	&amp;#039;&amp;#039;&amp;#039;&amp;lt;description ref=\&amp;quot;\&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039; group description &amp;#039;&amp;#039;&amp;#039;&amp;lt;/description&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
	... elements ...&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;/group&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;element kind&amp;lt;code&amp;gt;\&amp;quot;function|tag|var|css&amp;#039;&amp;#039;property|css&amp;#039;&amp;#039;selector|snippet\&amp;quot; name&amp;lt;/code&amp;gt;\&amp;quot;\&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;&amp;lt;description ref=\&amp;quot;\&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039; description of an element &amp;#039;&amp;#039;&amp;#039;&amp;lt;/description&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;&amp;lt;note title=\&amp;quot;\&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039; Any note you want to present for element - can be more than one &amp;#039;&amp;#039;&amp;#039;&amp;lt;/note&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;&amp;lt;properties&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
    &amp;#039;&amp;#039;&amp;#039;&amp;lt;proplist ref=\&amp;quot;\&amp;quot; /&amp;gt;&amp;#039;&amp;#039;&amp;#039; - list of previously defined properties, look at &amp;lt;def&amp;gt; description&lt;br /&gt;
    *&amp;lt;property  kind=\&amp;quot;link|example|dependency|attribute|parameter|return|parents\&amp;quot;&lt;br /&gt;
	 name&amp;lt;code&amp;gt;\&amp;quot;\&amp;quot; ref&amp;lt;/code&amp;gt;\&amp;quot;\&amp;quot; type&amp;lt;code&amp;gt;\&amp;quot;\&amp;quot; required&amp;lt;/code&amp;gt;\&amp;quot;\&amp;quot; default&amp;lt;code&amp;gt;\&amp;quot;\&amp;quot; input&amp;lt;/code&amp;gt;\&amp;quot;\&amp;quot;&amp;gt;*&lt;br /&gt;
&lt;br /&gt;
	&amp;#039;&amp;#039;Where:&amp;#039;&amp;#039;&lt;br /&gt;
	&amp;#039;&amp;#039;ref - reference to &amp;lt;def&amp;gt; tag&amp;#039;&amp;#039;&lt;br /&gt;
        &amp;#039;&amp;#039;type - usable in &amp;#039;return&amp;#039; as a function return type and parameter type&amp;#039;&amp;#039;&lt;br /&gt;
	&amp;#039;&amp;#039;required - whether this property is required or not&amp;#039;&amp;#039;&lt;br /&gt;
	&amp;#039;&amp;#039;default - default value&amp;#039;&amp;#039;&lt;br /&gt;
	_input - indicates type of control used in dialog, recognized values are:&lt;br /&gt;
          \&amp;quot;entry\&amp;quot;(default),\&amp;quot;list\&amp;quot;, \&amp;quot;list+entry\&amp;quot;,\&amp;quot;colour\&amp;quot;,\&amp;quot;colour+list\&amp;quot;,\&amp;quot;file\&amp;quot; _&lt;br /&gt;
&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;&amp;lt;description ref=\&amp;quot;\&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039; Property description	 &amp;#039;&amp;#039;&amp;#039;&amp;lt;/description&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;&amp;lt;values ref=\&amp;quot;\&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
         List of values for this property. You can use both &amp;#039;ref&amp;#039; attribute and value list&lt;br /&gt;
         inside element. Both lists will be concatenated.&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;&amp;lt;/values&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;&amp;lt;/property&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;&amp;lt;/properties&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;&amp;lt;insert python=\&amp;quot;0|1\&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
       Text to insert into editor either automatic or interactive.&lt;br /&gt;
       If &amp;#039;python&amp;#039; attribute is set to 1 that means, this text IS NOT something to insert into&lt;br /&gt;
       editor but Python script to interpret instead. Default value for &amp;#039;python&amp;#039; attribute is FALSE (0)&lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;&amp;lt;/insert&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;/element&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;def deftype=\&amp;quot;property|description|values|proplist\&amp;quot;&lt;br /&gt;
      kind&amp;lt;code&amp;gt;\&amp;quot;link|example|dependency|attribute|parameter|return|parents\&amp;quot; id&amp;lt;/code&amp;gt;\&amp;quot;\&amp;quot; ...&amp;gt;*&lt;br /&gt;
   Reusable definition that can be used above when setting &amp;#039;&amp;#039;&amp;#039;ref&amp;#039;&amp;#039;&amp;#039; attribute&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;/def&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;/ref&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------- Compact form ---------------------------&lt;br /&gt;
&lt;br /&gt;
To decrease size of files I propose some modification. Instead of full names like \&amp;quot;function\&amp;quot; or \&amp;quot;element\&amp;quot; we can use&lt;br /&gt;
one-char or two-char  mnemonics (such form is called &amp;#039;compact reference&amp;#039;). File is still a XML document, but is not so easy readable by user. Con of this solution&lt;br /&gt;
is much less space used by reference. To ease conversion I prepared pyhon script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dictionary for compactifying:&lt;br /&gt;
a - attribute&lt;br /&gt;
c - class&lt;br /&gt;
c1 - css&lt;br /&gt;
c2 - children&lt;br /&gt;
d - description&lt;br /&gt;
d1 - dependency&lt;br /&gt;
d2 - default&lt;br /&gt;
d3 - def&lt;br /&gt;
d4 - deftype&lt;br /&gt;
e - element&lt;br /&gt;
e1 - example&lt;br /&gt;
f - function&lt;br /&gt;
g - group&lt;br /&gt;
i - insert&lt;br /&gt;
i1 - id&lt;br /&gt;
k - kind&lt;br /&gt;
l - link&lt;br /&gt;
n - name&lt;br /&gt;
n1 - note&lt;br /&gt;
p - properties&lt;br /&gt;
p1 - property&lt;br /&gt;
p2 - parameter&lt;br /&gt;
p3 - parents&lt;br /&gt;
r - ref&lt;br /&gt;
r1 - return&lt;br /&gt;
r2 - required&lt;br /&gt;
s - snippet&lt;br /&gt;
t - title&lt;br /&gt;
t1 - tag&lt;br /&gt;
t2 - type&lt;br /&gt;
v - vlistonly&lt;br /&gt;
v1 - values&lt;br /&gt;
v2 - version&lt;br /&gt;
x - compact&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Christian</name></author>
	</entry>
</feed>