<?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: Class object tab completion &#038; improper field names	</title>
	<atom:link href="https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names/feed" rel="self" type="application/rss+xml" />
	<link>https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=class-object-tab-completion-and-improper-field-names</link>
	<description>Professional Matlab consulting, development and training</description>
	<lastBuildDate>Sat, 18 Jan 2020 15:43:26 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.3</generator>
	<item>
		<title>
		By: Sky		</title>
		<link>https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-508125</link>

		<dc:creator><![CDATA[Sky]]></dc:creator>
		<pubDate>Sat, 18 Jan 2020 15:43:26 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=4918#comment-508125</guid>

					<description><![CDATA[Matlab seems to catch on to &lt;code&gt;mustBeMember&lt;/code&gt; and offers tab completion options when it is used.

&lt;pre lang=&quot;matlab&quot;&gt;
classdef foo &lt; matlab.mixin.SetGet
    properties
        Coordinates {mustBeMember(Coordinates,{&#039;north&#039;,&#039;south&#039;,&#039;east&#039;,&#039;west&#039;})} = &#039;north&#039;
    end
end
&lt;/pre&gt;]]></description>
			<content:encoded><![CDATA[<p>Matlab seems to catch on to <code>mustBeMember</code> and offers tab completion options when it is used.</p>
<pre lang="matlab">
classdef foo < matlab.mixin.SetGet
    properties
        Coordinates {mustBeMember(Coordinates,{'north','south','east','west'})} = 'north'
    end
end
</pre>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jim Hokanson		</title>
		<link>https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-372393</link>

		<dc:creator><![CDATA[Jim Hokanson]]></dc:creator>
		<pubDate>Sun, 20 Mar 2016 18:20:21 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=4918#comment-372393</guid>

					<description><![CDATA[Hi Yair,

I came across a use case where sadly I needed to use this approach to support arbitrary variable names. Any idea on how to support tab completion within the parentheses? e.g.:
c.(&#039; %tab complete after the quote

Thanks,
Jim]]></description>
			<content:encoded><![CDATA[<p>Hi Yair,</p>
<p>I came across a use case where sadly I needed to use this approach to support arbitrary variable names. Any idea on how to support tab completion within the parentheses? e.g.:<br />
c.(&#8216; %tab complete after the quote</p>
<p>Thanks,<br />
Jim</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Nick Gaul		</title>
		<link>https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-345400</link>

		<dc:creator><![CDATA[Nick Gaul]]></dc:creator>
		<pubDate>Mon, 09 Feb 2015 16:54:44 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=4918#comment-345400</guid>

					<description><![CDATA[I am creating some custom classes for a project. I am overloading the &lt;i&gt;subsasgn&lt;/i&gt; and &lt;i&gt;subsref&lt;/i&gt; methods and that is working wonderfully. I tried overloading the &lt;i&gt;properties&lt;/i&gt; method so I could provide a list of specific properties and I would say it is 50/50 working and not working. This is what I mean by 50/50 working:

&lt;pre lang=&quot;matlab&quot;&gt;
obj = myclass(x);
obj. % this shows the property names that my overloaded properties method returns
i = [1,3];
obj(i). % this shows a popup message saying no completions found. Do you know if that is considered correct/normal Matlab behavior?
&lt;/pre&gt;

I also tried overloading the &lt;i&gt;fieldnames&lt;/i&gt; method as well but I still get the no completions found message. Any ideas of how I can get this to work?

Being I am already overloading the &lt;i&gt;subsasgn&lt;/i&gt; and &lt;i&gt;subsref&lt;/i&gt; methods I do realize I could change them such so that instead of doing &lt;code&gt;obj(i).property_name&lt;/code&gt; I could use &lt;code&gt;obj.property_name(i)&lt;/code&gt; and then I think the tab completion would work. However, my custom class (&lt;code&gt;obj&lt;/code&gt;) actually contains an array of a different custom class. So it seems more natural to specify the objects I want first, &lt;code&gt;obj(i)&lt;/code&gt; and then the property to get/set, &lt;code&gt;obj(i).property_name&lt;/code&gt;.]]></description>
			<content:encoded><![CDATA[<p>I am creating some custom classes for a project. I am overloading the <i>subsasgn</i> and <i>subsref</i> methods and that is working wonderfully. I tried overloading the <i>properties</i> method so I could provide a list of specific properties and I would say it is 50/50 working and not working. This is what I mean by 50/50 working:</p>
<pre lang="matlab">
obj = myclass(x);
obj. % this shows the property names that my overloaded properties method returns
i = [1,3];
obj(i). % this shows a popup message saying no completions found. Do you know if that is considered correct/normal Matlab behavior?
</pre>
<p>I also tried overloading the <i>fieldnames</i> method as well but I still get the no completions found message. Any ideas of how I can get this to work?</p>
<p>Being I am already overloading the <i>subsasgn</i> and <i>subsref</i> methods I do realize I could change them such so that instead of doing <code>obj(i).property_name</code> I could use <code>obj.property_name(i)</code> and then I think the tab completion would work. However, my custom class (<code>obj</code>) actually contains an array of a different custom class. So it seems more natural to specify the objects I want first, <code>obj(i)</code> and then the property to get/set, <code>obj(i).property_name</code>.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Lorin		</title>
		<link>https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-337340</link>

		<dc:creator><![CDATA[Lorin]]></dc:creator>
		<pubDate>Wed, 12 Nov 2014 20:31:30 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=4918#comment-337340</guid>

					<description><![CDATA[I am currently using R2014a and are using Michal&#039;s solution to attempt to hide handle superclass methods (addlistener.m, etc) when using tab-completion. I&#039;m not getting the desired result using R2014a. 

In 2013a and 2013b, I am able to hide handles&#039; methods by inheriting from a class that overloading the functions (addlistener.m, etc) and gives them access of &#039;Hidden&#039;. As seen in the stackoverflow questions below:
http://stackoverflow.com/questions/6621850/is-it-possible-to-hide-the-methods-inherited-from-the-handle-class-in-matlab


My question is: Is anyone aware of changes made to R2014a+ that would not allow overloading of &#039;methods&#039; and thus not resolve the hiding of handles&#039; methods when using the tab-completion tool tip?]]></description>
			<content:encoded><![CDATA[<p>I am currently using R2014a and are using Michal&#8217;s solution to attempt to hide handle superclass methods (addlistener.m, etc) when using tab-completion. I&#8217;m not getting the desired result using R2014a. </p>
<p>In 2013a and 2013b, I am able to hide handles&#8217; methods by inheriting from a class that overloading the functions (addlistener.m, etc) and gives them access of &#8216;Hidden&#8217;. As seen in the stackoverflow questions below:<br />
<a href="http://stackoverflow.com/questions/6621850/is-it-possible-to-hide-the-methods-inherited-from-the-handle-class-in-matlab" rel="nofollow ugc">http://stackoverflow.com/questions/6621850/is-it-possible-to-hide-the-methods-inherited-from-the-handle-class-in-matlab</a></p>
<p>My question is: Is anyone aware of changes made to R2014a+ that would not allow overloading of &#8216;methods&#8217; and thus not resolve the hiding of handles&#8217; methods when using the tab-completion tool tip?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Setting class property types &#124; Undocumented Matlab		</title>
		<link>https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-329536</link>

		<dc:creator><![CDATA[Setting class property types &#124; Undocumented Matlab]]></dc:creator>
		<pubDate>Tue, 12 Aug 2014 17:21:37 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=4918#comment-329536</guid>

					<description><![CDATA[[...] additional aspects of class property tab-completion [...]]]></description>
			<content:encoded><![CDATA[<p>[&#8230;] additional aspects of class property tab-completion [&#8230;]</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Daniel		</title>
		<link>https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-328306</link>

		<dc:creator><![CDATA[Daniel]]></dc:creator>
		<pubDate>Tue, 22 Jul 2014 10:31:30 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=4918#comment-328306</guid>

					<description><![CDATA[I find it completely unprofessional that the official &quot;bug list&quot; doesn&#039;t list all known bugs.]]></description>
			<content:encoded><![CDATA[<p>I find it completely unprofessional that the official &#8220;bug list&#8221; doesn&#8217;t list all known bugs.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Yair Altman		</title>
		<link>https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-328291</link>

		<dc:creator><![CDATA[Yair Altman]]></dc:creator>
		<pubDate>Tue, 22 Jul 2014 04:25:10 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=4918#comment-328291</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-328259&quot;&gt;TheBlackCat&lt;/a&gt;.

Thanks for letting me know about this. I can see how this might indeed be seen in that light and so I have removed the relevant phrases.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-328259">TheBlackCat</a>.</p>
<p>Thanks for letting me know about this. I can see how this might indeed be seen in that light and so I have removed the relevant phrases.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: TheBlackCat		</title>
		<link>https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-328259</link>

		<dc:creator><![CDATA[TheBlackCat]]></dc:creator>
		<pubDate>Mon, 21 Jul 2014 12:42:05 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=4918#comment-328259</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-328193&quot;&gt;TheBlackCat&lt;/a&gt;.

I would like to apologize.  I am sure you are trying your best to give the best advice possible to us and your clients.  I do think those paragraphs are easy to misunderstand and I would probably have phrased them differently.  That was really my ultimate point, but considering what a terrible job I did expressing myself I am probably the last person who should be giving that sort of advice.  So please accept my apology and believe me when I say I do not doubt your integrity.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-328193">TheBlackCat</a>.</p>
<p>I would like to apologize.  I am sure you are trying your best to give the best advice possible to us and your clients.  I do think those paragraphs are easy to misunderstand and I would probably have phrased them differently.  That was really my ultimate point, but considering what a terrible job I did expressing myself I am probably the last person who should be giving that sort of advice.  So please accept my apology and believe me when I say I do not doubt your integrity.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: TheBlackCat		</title>
		<link>https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-328254</link>

		<dc:creator><![CDATA[TheBlackCat]]></dc:creator>
		<pubDate>Mon, 21 Jul 2014 11:04:39 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=4918#comment-328254</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-328193&quot;&gt;TheBlackCat&lt;/a&gt;.

Fair enough.  However, from those two paragraphs, you seem to put a lot of focus on what would benefit you.  I hope you can see how that sort of thing could give the wrong impression.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-328193">TheBlackCat</a>.</p>
<p>Fair enough.  However, from those two paragraphs, you seem to put a lot of focus on what would benefit you.  I hope you can see how that sort of thing could give the wrong impression.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Yair Altman		</title>
		<link>https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-328195</link>

		<dc:creator><![CDATA[Yair Altman]]></dc:creator>
		<pubDate>Sun, 20 Jul 2014 16:49:09 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=4918#comment-328195</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-328193&quot;&gt;TheBlackCat&lt;/a&gt;.

Ouch, that hurt. It&#039;s a pity that after so many years, you underestimate me so much. My client could not modify the legacy system. The options were either to keep that system and the discrepancies vs. Matlab (which made R&amp;D difficult across the two groups), or to find a way to migrate to Matlab, or to redo everything from scratch (at a huge R&amp;D cost). My client decided to migrate to Matlab before they contacted me, but hit the problem I described above. They came to me asking for a solution after MathWorks support and other consultants were not able to help them solve the problem. I was able to give them a pointer in this direction which nobody else was able to do before then. Having said that, I did warn them that it might not be cost-effective. But now at least my client has an alternative that they can consider vs. their current ongoing development difficulties - an alternative that they did not have beforehand.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/class-object-tab-completion-and-improper-field-names#comment-328193">TheBlackCat</a>.</p>
<p>Ouch, that hurt. It&#8217;s a pity that after so many years, you underestimate me so much. My client could not modify the legacy system. The options were either to keep that system and the discrepancies vs. Matlab (which made R&#038;D difficult across the two groups), or to find a way to migrate to Matlab, or to redo everything from scratch (at a huge R&#038;D cost). My client decided to migrate to Matlab before they contacted me, but hit the problem I described above. They came to me asking for a solution after MathWorks support and other consultants were not able to help them solve the problem. I was able to give them a pointer in this direction which nobody else was able to do before then. Having said that, I did warn them that it might not be cost-effective. But now at least my client has an alternative that they can consider vs. their current ongoing development difficulties &#8211; an alternative that they did not have beforehand.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
