<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: User-defined tab completions &#8211; take 2	</title>
	<atom:link href="https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2/feed" rel="self" type="application/rss+xml" />
	<link>https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=user-defined-tab-completions-take-2</link>
	<description>Professional Matlab consulting, development and training</description>
	<lastBuildDate>Wed, 28 Jan 2026 18:23:33 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.4</generator>
	<item>
		<title>
		By: Yair Altman		</title>
		<link>https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-527809</link>

		<dc:creator><![CDATA[Yair Altman]]></dc:creator>
		<pubDate>Wed, 28 Jan 2026 18:23:33 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6961#comment-527809</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-527791&quot;&gt;matlabtest&lt;/a&gt;.

The description string can be provided using the &quot;purpose&quot; key/attribute, as explained here: 
&lt;a href=&quot;https://www.mathworks.com/help/matlab/matlab_prog/customize-code-suggestions-and-completions.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow ugc&quot;&gt;https://www.mathworks.com/help/matlab/matlab_prog/customize-code-suggestions-and-completions.html&lt;/a&gt;

For example:
&lt;code&gt;{&quot;name&quot;:&quot;in1&quot;, &quot;kind&quot;:&quot;required&quot;, &quot;type&quot;:[&quot;numeric&quot;], &quot;purpose&quot;:&quot;ID of item&quot;}&lt;/code&gt;]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-527791">matlabtest</a>.</p>
<p>The description string can be provided using the &#8220;purpose&#8221; key/attribute, as explained here:<br />
<a href="https://www.mathworks.com/help/matlab/matlab_prog/customize-code-suggestions-and-completions.html" target="_blank" rel="nofollow ugc">https://www.mathworks.com/help/matlab/matlab_prog/customize-code-suggestions-and-completions.html</a></p>
<p>For example:<br />
<code>{"name":"in1", "kind":"required", "type":["numeric"], "purpose":"ID of item"}</code></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: matlabtest		</title>
		<link>https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-527791</link>

		<dc:creator><![CDATA[matlabtest]]></dc:creator>
		<pubDate>Mon, 26 Jan 2026 17:46:56 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6961#comment-527791</guid>

					<description><![CDATA[In the picture below, the functions have a description on the right-side. Is this a part of the json as well? I looked at the built-in matlab function&#039;s json, but could not find this description string anywhere. I&#039;d like to provide the same for my custom built-in functions

https://www.mathworks.com/help/matlab/25a_command_window_suggestions.png]]></description>
			<content:encoded><![CDATA[<p>In the picture below, the functions have a description on the right-side. Is this a part of the json as well? I looked at the built-in matlab function&#8217;s json, but could not find this description string anywhere. I&#8217;d like to provide the same for my custom built-in functions</p>
<p><a href="https://www.mathworks.com/help/matlab/25a_command_window_suggestions.png" rel="nofollow ugc">https://www.mathworks.com/help/matlab/25a_command_window_suggestions.png</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Yair Altman		</title>
		<link>https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-527729</link>

		<dc:creator><![CDATA[Yair Altman]]></dc:creator>
		<pubDate>Sun, 18 Jan 2026 08:52:58 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6961#comment-527729</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-527715&quot;&gt;matlabtest&lt;/a&gt;.

As far as I can tell, basePath (or similar property) is not supported, only name, kind, type, purpose, repeating, tuple, platform and the quite-confusing mutuallyExclusiveGroup. 
Perhaps there are some other undocumented properties, but I am not aware of any.

The syntax is now documented in Matlab: 
https://www.mathworks.com/help/matlab/matlab_prog/customize-code-suggestions-and-completions.html]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-527715">matlabtest</a>.</p>
<p>As far as I can tell, basePath (or similar property) is not supported, only name, kind, type, purpose, repeating, tuple, platform and the quite-confusing mutuallyExclusiveGroup.<br />
Perhaps there are some other undocumented properties, but I am not aware of any.</p>
<p>The syntax is now documented in Matlab:<br />
<a href="https://www.mathworks.com/help/matlab/matlab_prog/customize-code-suggestions-and-completions.html" rel="nofollow ugc">https://www.mathworks.com/help/matlab/matlab_prog/customize-code-suggestions-and-completions.html</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: matlabtest		</title>
		<link>https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-527715</link>

		<dc:creator><![CDATA[matlabtest]]></dc:creator>
		<pubDate>Fri, 16 Jan 2026 21:40:40 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6961#comment-527715</guid>

					<description><![CDATA[Hi, 

can folders / paths be specified in functionSignatures.json, for example to default to another path?
 
  &quot;LoadInputFile&quot;: {
    &quot;_description&quot;: &quot;Load a text input file&quot;,
    &quot;inputs&quot;: [
      {
        &quot;name&quot;: &quot;filename&quot;,
        &quot;kind&quot;: &quot;optional&quot;,
        &quot;type&quot;: &quot;filepath=Folder2/Folder3/*.txt&quot;,
	&quot;basePath&quot;: &quot;C://Folder1/Folder2/Folder3/&quot;,
        &quot;purpose&quot;: &quot;some file is now loaded&quot;
      }
    ]
  },]]></description>
			<content:encoded><![CDATA[<p>Hi, </p>
<p>can folders / paths be specified in functionSignatures.json, for example to default to another path?</p>
<p>  &#8220;LoadInputFile&#8221;: {<br />
    &#8220;_description&#8221;: &#8220;Load a text input file&#8221;,<br />
    &#8220;inputs&#8221;: [<br />
      {<br />
        &#8220;name&#8221;: &#8220;filename&#8221;,<br />
        &#8220;kind&#8221;: &#8220;optional&#8221;,<br />
        &#8220;type&#8221;: &#8220;filepath=Folder2/Folder3/*.txt&#8221;,<br />
	&#8220;basePath&#8221;: &#8220;C://Folder1/Folder2/Folder3/&#8221;,<br />
        &#8220;purpose&#8221;: &#8220;some file is now loaded&#8221;<br />
      }<br />
    ]<br />
  },</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Yair Altman		</title>
		<link>https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-521752</link>

		<dc:creator><![CDATA[Yair Altman]]></dc:creator>
		<pubDate>Thu, 01 Jun 2023 16:44:58 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6961#comment-521752</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-521745&quot;&gt;Arye&lt;/a&gt;.

I am not familiar with a universal catch-all tab-completion mechanism for all functions, and it also doesn&#039;t make much sense to me, because different functions use different input arguments. If you have a finite number of functions, you can place them in a custom &lt;i&gt;functionSignature&lt;/i&gt; file.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-521745">Arye</a>.</p>
<p>I am not familiar with a universal catch-all tab-completion mechanism for all functions, and it also doesn&#8217;t make much sense to me, because different functions use different input arguments. If you have a finite number of functions, you can place them in a custom <i>functionSignature</i> file.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Arye		</title>
		<link>https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-521745</link>

		<dc:creator><![CDATA[Arye]]></dc:creator>
		<pubDate>Wed, 31 May 2023 22:29:18 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6961#comment-521745</guid>

					<description><![CDATA[hi,
is there a universal functionSignature.json file that will allow my to get the function hints when opening brackets of my funcs?
something that automaticly recognize my function input reqrueid types

thanks,
Arye]]></description>
			<content:encoded><![CDATA[<p>hi,<br />
is there a universal functionSignature.json file that will allow my to get the function hints when opening brackets of my funcs?<br />
something that automaticly recognize my function input reqrueid types</p>
<p>thanks,<br />
Arye</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: matse		</title>
		<link>https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-508777</link>

		<dc:creator><![CDATA[matse]]></dc:creator>
		<pubDate>Mon, 27 Jul 2020 15:06:20 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6961#comment-508777</guid>

					<description><![CDATA[Thanks for the post - I love your blog!

It seems that - at least in 2020a - it is also possible to have the &lt;i&gt;functionSignatures.json&lt;/i&gt; in a subfolder named &lt;i&gt;resources&lt;/i&gt;. Matlab is using such a subfolder for example for the functions in &lt;i&gt;toolbox/matlab/codetools&lt;/i&gt;.]]></description>
			<content:encoded><![CDATA[<p>Thanks for the post &#8211; I love your blog!</p>
<p>It seems that &#8211; at least in 2020a &#8211; it is also possible to have the <i>functionSignatures.json</i> in a subfolder named <i>resources</i>. Matlab is using such a subfolder for example for the functions in <i>toolbox/matlab/codetools</i>.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Yair Altman		</title>
		<link>https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-462880</link>

		<dc:creator><![CDATA[Yair Altman]]></dc:creator>
		<pubDate>Mon, 18 Feb 2019 20:44:00 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6961#comment-462880</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-462862&quot;&gt;Jim Van Zandt&lt;/a&gt;.

@Jim - you can implement a simple GUI that has an editbox, which searches for and displays the relevant file/folder completions whenever the user types anything in the editbox, as explained here: http://undocumentedmatlab.com/blog/editbox-data-input-validation]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-462862">Jim Van Zandt</a>.</p>
<p>@Jim &#8211; you can implement a simple GUI that has an editbox, which searches for and displays the relevant file/folder completions whenever the user types anything in the editbox, as explained here: <a href="http://undocumentedmatlab.com/blog/editbox-data-input-validation" rel="ugc">http://undocumentedmatlab.com/blog/editbox-data-input-validation</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jim Van Zandt		</title>
		<link>https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-462862</link>

		<dc:creator><![CDATA[Jim Van Zandt]]></dc:creator>
		<pubDate>Mon, 18 Feb 2019 19:46:08 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6961#comment-462862</guid>

					<description><![CDATA[I have a significantly different use case (but one using many of the same keywords :-) - I have a function that asks the user to type in a path or file name, and I would like the function to tab-complete as the user types.  The path might be anywhere in the directory tree, so adding JSON files everywhere is not practical.  Do you know of a convenient way to implement that, using this function, or the GNU readline library, or something else?]]></description>
			<content:encoded><![CDATA[<p>I have a significantly different use case (but one using many of the same keywords 🙂 &#8211; I have a function that asks the user to type in a path or file name, and I would like the function to tab-complete as the user types.  The path might be anywhere in the directory tree, so adding JSON files everywhere is not practical.  Do you know of a convenient way to implement that, using this function, or the GNU readline library, or something else?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Viktor Horvath		</title>
		<link>https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-416520</link>

		<dc:creator><![CDATA[Viktor Horvath]]></dc:creator>
		<pubDate>Thu, 16 Nov 2017 18:52:25 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6961#comment-416520</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-410176&quot;&gt;Greg&lt;/a&gt;.

Your comment was very helpful, thank you! I would like to add to it, because to me it was not obvious that in the case of Class methods the first argument must be declared in the functionSignatures.json with the proper type otherwise it will not work. For example:
&lt;pre lang=&quot;matlab&quot;&gt;
classdef foo
    methods
        function out = bar(obj, arg)
            out = arg;
        end
    end
end
&lt;/pre&gt;

In order to have tab completion for the &lt;b&gt;bar()&lt;/b&gt; method the corresponding functionSignatures.json file must contain the following.
&lt;pre lang=&quot;java&quot;&gt;
{
    &quot;foo.bar&quot;:
    {
        &quot;inputs&quot;:
        [
            {&quot;name&quot;:&quot;obj&quot;,&quot;kind&quot;:&quot;required&quot;,&quot;type&quot;:&quot;foo&quot;},
            {&quot;name&quot;:&quot;arg&quot;,&quot;kind&quot;:&quot;required&quot;,&quot;type&quot;:&quot;choices={&#039;choice1&#039;,&#039;choice2&#039;}&quot;}
        ]
    }
}
&lt;/pre&gt;

Note the first entry in the input list is the object itself which can be used to generate options on the fly as shown in the article.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/user-defined-tab-completions-take-2#comment-410176">Greg</a>.</p>
<p>Your comment was very helpful, thank you! I would like to add to it, because to me it was not obvious that in the case of Class methods the first argument must be declared in the functionSignatures.json with the proper type otherwise it will not work. For example:</p>
<pre lang="matlab">
classdef foo
    methods
        function out = bar(obj, arg)
            out = arg;
        end
    end
end
</pre>
<p>In order to have tab completion for the <b>bar()</b> method the corresponding functionSignatures.json file must contain the following.</p>
<pre lang="java">
{
    "foo.bar":
    {
        "inputs":
        [
            {"name":"obj","kind":"required","type":"foo"},
            {"name":"arg","kind":"required","type":"choices={'choice1','choice2'}"}
        ]
    }
}
</pre>
<p>Note the first entry in the input list is the object itself which can be used to generate options on the fly as shown in the article.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
