<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Code Editor &#8211; Xojo Programming Blog</title>
	<atom:link href="https://blog.xojo.com/tag/code-editor/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.xojo.com</link>
	<description>Blog about the Xojo programming language and IDE</description>
	<lastBuildDate>Tue, 11 Feb 2025 20:00:45 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Code Editor Selection Matching</title>
		<link>https://blog.xojo.com/2024/12/10/code-editor-selection-matching/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Tue, 10 Dec 2024 16:37:25 +0000</pubDate>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[2024r4]]></category>
		<category><![CDATA[Beginner Tips]]></category>
		<category><![CDATA[Code Editor]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=13949</guid>

					<description><![CDATA[A new feature of the Xojo Code Editor is Selection Matching. When this feature is turned on, selected text is highlighted everywhere it appears in&#8230;]]></description>
										<content:encoded><![CDATA[
<p>A new feature of the Xojo Code Editor is Selection Matching. When this feature is turned on, selected text is highlighted everywhere it appears in the current Code Editor.</p>



<p>Here you can see that &#8220;customerRS&#8221; is selected on line 14 and all the other places where it appears in the method is also highlighted.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="752" src="https://blog.xojo.com/wp-content/uploads/2024/10/image-8-1024x752.png" alt="" class="wp-image-13950" srcset="https://blog.xojo.com/wp-content/uploads/2024/10/image-8-1024x752.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/10/image-8-300x220.png 300w, https://blog.xojo.com/wp-content/uploads/2024/10/image-8-768x564.png 768w, https://blog.xojo.com/wp-content/uploads/2024/10/image-8.png 1522w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>This feature can be very handy to see how things are used in your code and is much easier than using the Find panel.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Note: The matching is done by full word tokens. So if you highlighted just &#8220;customer&#8221; in the above code, then nothing is matched because that does not match the &#8220;customerRS&#8221; tokens.</p>
</blockquote>



<p>To turn this feature on, head over to Settings, Coding and check the box for &#8220;Display selection matches&#8221;.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="914" src="https://blog.xojo.com/wp-content/uploads/2024/10/image-9-1024x914.png" alt="" class="wp-image-13951" srcset="https://blog.xojo.com/wp-content/uploads/2024/10/image-9-1024x914.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/10/image-9-300x268.png 300w, https://blog.xojo.com/wp-content/uploads/2024/10/image-9-768x686.png 768w, https://blog.xojo.com/wp-content/uploads/2024/10/image-9-1536x1371.png 1536w, https://blog.xojo.com/wp-content/uploads/2024/10/image-9.png 1624w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>You can also change the color that is used for the matching by changing the Syntax color &#8220;Selection Match Color&#8221;.</p>



<p><em>Paul learned to program in BASIC at age 13 and has programmed in more languages than he remembers, with Xojo being an obvious favorite. When not working on Xojo, you can find him talking about retrocomputing at <a href="https://goto10.substack.com" target="_blank" rel="noreferrer noopener">Goto 10</a> and </em>on Mastodon @lefebvre@hachyderm.io.</p>



<ul class="wp-block-social-links has-normal-icon-size is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-16018d1d wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-facebook  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/goxojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li>

<li class="wp-social-link wp-social-link-x  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://x.com/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg><span class="wp-block-social-link-label screen-reader-text">X</span></a></li>

<li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/company/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li>

<li class="wp-social-link wp-social-link-github  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://github.com/topics/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg><span class="wp-block-social-link-label screen-reader-text">GitHub</span></a></li>

<li class="wp-social-link wp-social-link-youtube  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.youtube.com/c/XojoInc" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg><span class="wp-block-social-link-label screen-reader-text">YouTube</span></a></li></ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Xojo 2024r4 is Now Available!</title>
		<link>https://blog.xojo.com/2024/12/10/xojo-2024r4-is-now-available/</link>
		
		<dc:creator><![CDATA[Gabriel Ludosanu]]></dc:creator>
		<pubDate>Tue, 10 Dec 2024 16:36:12 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[2024r4]]></category>
		<category><![CDATA[App Localization]]></category>
		<category><![CDATA[Charts]]></category>
		<category><![CDATA[Code Editor]]></category>
		<category><![CDATA[Hardened Runtime]]></category>
		<category><![CDATA[Notarization]]></category>
		<category><![CDATA[Preemptive Threads]]></category>
		<category><![CDATA[Sandboxing]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=14183</guid>

					<description><![CDATA[Xojo 2024 Release 4 introduces a suite of powerful new features and enhancements, along with numerous bug fixes, further solidifying Xojo’s commitment to providing a&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Xojo 2024 Release 4 introduces a suite of powerful new features and enhancements, along with numerous bug fixes, further solidifying Xojo’s commitment to providing a robust and versatile development environment. With 33 new features added and 182 bugs fixed, Xojo 2024r4 is designed to enhance your productivity and expand your creative possibilities.</p>



<h2 class="wp-block-heading">What’s New in Xojo 2024r4</h2>



<p>Xojo 2024r4 brings a range of exciting updates that enhance cross-platform development, improve security, and provide more tools for creating dynamic and interactive applications. Here are some of the standout features:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p><strong>Android Localization</strong></p>



<p>Expand your app’s reach with comprehensive localization support for Android. Easily add translations and switch locales using the intuitive Constant Editor, allowing you to cater to a diverse, global audience without the hassle.</p>



<p><a href="https://blog.xojo.com/2024/12/10/android-localization/" data-type="link" data-id="https://blog.xojo.com/2024/12/10/android-localization/" target="_blank" rel="noreferrer noopener">Learn more about Android Localization</a></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p><strong>Extended Android Features</strong></p>



<p>We&#8217;ve enhanced Android support by integrating several standard Xojo language features, including Structures, ByRef parameters, Operator_Lookup, and Operator_Convert.</p>



<p><a href="https://blog.xojo.com/2024/12/10/android-language-features/" data-type="link" data-id="https://blog.xojo.com/2024/12/10/android-language-features/" target="_blank" rel="noreferrer noopener">Discover the Extended Android Features</a></p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p><strong>Selection Matching</strong></p>



<p>Boost your coding efficiency with the new Selection Matching feature in Xojo&#8217;s Code Editor. Quickly highlight and track all occurrences of selected text in your code, making it easier to navigate, refactor, and maintain your projects.</p>



<p><a href="https://blog.xojo.com/2024/12/10/code-editor-selection-matching/" data-type="link" data-id="https://blog.xojo.com/2024/12/10/code-editor-selection-matching/" target="_blank" rel="noreferrer noopener">Learn more about Code Selection Matching</a></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p><strong>Secure Mac Apps</strong></p>



<p>Enhance the security of your Mac applications directly from the Xojo IDE with built-in support for Sandboxing, Hardened Runtime, and Notarization. These features ensure your apps meet the latest security standards, providing a safe and trusted experience for your users.</p>



<p><a href="https://blog.xojo.com/2024/12/10/sandboxing-hardened-runtime-and-notarization-arrives-to-the-xojo-ide/" data-type="link" data-id="https://blog.xojo.com/2024/12/10/sandboxing-hardened-runtime-and-notarization-arrives-to-the-xojo-ide/" target="_blank" rel="noreferrer noopener">Learn more</a></p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p><strong>Enhanced Charts</strong></p>



<p>Take control of your data visualization with Enhanced Charts. Gain precise control over DataSets and legends, and design dynamic, interactive charts using new event handlers and properties. These improvements make it easier to create visually compelling and informative charts for your applications.</p>



<p><a href="https://blog.xojo.com/2024/12/10/more-control-over-your-charts/" target="_blank" rel="noreferrer noopener">Read about the enhanced Charts</a></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p><strong>Preemptive Threads</strong></p>



<p>Experience faster execution, better debugging, and smarter object handling with the enhanced Preemptive Threads. This feature maximizes your application’s performance on multi-core systems, allowing for more responsive and efficient code.</p>



<p><a href="https://blog.xojo.com/2024/12/10/sharpening-our-preemptive-threads/" target="_blank" rel="noreferrer noopener">Understand Preemptive Threads</a></p>
</div>
</div>



<p><strong>Web Framework</strong><br>Enjoy smoother and more efficient web applications with updates to Xojo&#8217;s Web Framework. Improved memory usage and numerous bug fixes ensure that your web apps run reliably and perform optimally, providing a better experience for your users.</p>



<p><a href="https://blog.xojo.com/2024/12/10/xojo-web-improvements-in-2024r4/" target="_blank" rel="noreferrer noopener">Discover Web Framework Improvements</a></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>These updates and enhancements are designed to make your development process more efficient, productive, and enjoyable. Whether you’re building new applications or enhancing existing ones, Xojo 2024r4 provides the tools and capabilities you need to succeed.</p>



<h2 class="wp-block-heading">Get Started</h2>



<p>To learn more about Xojo 2024 Release 4 and begin your development journey, please visit the&nbsp;<a href="https://documentation.xojo.com/versions/2024r4/resources/release_notes/2024r4.html" target="_blank" rel="noreferrer noopener">Xojo 2024r4 Release Notes</a>. The update is available for download now from the&nbsp;<a href="https://xojo.com/download/" target="_blank" rel="noreferrer noopener">Xojo downloads page</a>.</p>



<h3 class="wp-block-heading">What’s Next?</h3>



<p>We’re continuously working on new features, updates, and enhancements to our platform. If you have any suggestions or ideas, please add them to the&nbsp;<a href="https://tracker.xojo.com/xojoinc/xojo">Xojo tracker</a>. We’re always looking to improve and expand Xojo to better serve our community.</p>



<p><strong>Thank you for being part of the Xojo community. We’re excited to see what you create with Xojo 2024r4!</strong></p>



<ul class="wp-block-social-links has-normal-icon-size is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-16018d1d wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-facebook  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/goxojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li>

<li class="wp-social-link wp-social-link-x  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://x.com/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg><span class="wp-block-social-link-label screen-reader-text">X</span></a></li>

<li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/company/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li>

<li class="wp-social-link wp-social-link-github  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://github.com/topics/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg><span class="wp-block-social-link-label screen-reader-text">GitHub</span></a></li>

<li class="wp-social-link wp-social-link-youtube  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.youtube.com/c/XojoInc" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg><span class="wp-block-social-link-label screen-reader-text">YouTube</span></a></li></ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Xojo Code Editor Changes: Line Highlight, Syntax Help Area and Standardize Format</title>
		<link>https://blog.xojo.com/2024/10/01/xojo-code-editor-changes-line-highlight-syntax-help-area-and-standardize-format/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Tue, 01 Oct 2024 15:30:29 +0000</pubDate>
				<category><![CDATA[Learning]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[2024r3]]></category>
		<category><![CDATA[Code Editor]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=13569</guid>

					<description><![CDATA[The Xojo Code Editor has a few notable changes for Xojo 2024r3 that you might find useful. Line Highlight The first change is that the&#8230;]]></description>
										<content:encoded><![CDATA[
<p>The Xojo Code Editor has a few notable changes for Xojo 2024r3 that you might find useful.</p>



<h2 class="wp-block-heading">Line Highlight</h2>



<p>The first change is that the entire line containing the cursor is now highlighted. This makes it much easier to find where your cursor is on large displays and matches behavior that is common in other coding editors, such as BBEdit or Visual Studio Code. This highlight is controlled in Coding Settings:</p>



<figure class="wp-block-image size-full"><img decoding="async" width="330" height="52" src="https://blog.xojo.com/wp-content/uploads/2024/09/image.png" alt="" class="wp-image-13591" srcset="https://blog.xojo.com/wp-content/uploads/2024/09/image.png 330w, https://blog.xojo.com/wp-content/uploads/2024/09/image-300x47.png 300w" sizes="(max-width: 330px) 100vw, 330px" /></figure>



<p>Here is what he row highlight looks like:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="971" height="1024" src="https://blog.xojo.com/wp-content/uploads/2024/08/image-11-971x1024.png" alt="" class="wp-image-13570" srcset="https://blog.xojo.com/wp-content/uploads/2024/08/image-11-971x1024.png 971w, https://blog.xojo.com/wp-content/uploads/2024/08/image-11-284x300.png 284w, https://blog.xojo.com/wp-content/uploads/2024/08/image-11-768x810.png 768w, https://blog.xojo.com/wp-content/uploads/2024/08/image-11-1456x1536.png 1456w, https://blog.xojo.com/wp-content/uploads/2024/08/image-11.png 1568w" sizes="auto, (max-width: 971px) 100vw, 971px" /></figure>



<h2 class="wp-block-heading">Syntax Help Area</h2>



<p>With the enhancement to show method overloads in the Syntax Help area a couple years ago, the area was changed to dynamically resize its contents depending on what is shown there. Although some liked this design there were others that felt that it was distracting to have the Syntax Help Area size change so often.</p>



<p>An improvement made last year altered the syntax help area behavior so that it is only updated when the mouse cursor stops moving for a moment. Because of that change, we are able to introduce the option to have a fixed-size Syntax Help Area.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="784" height="88" src="https://blog.xojo.com/wp-content/uploads/2024/08/image-12.png" alt="" class="wp-image-13571" srcset="https://blog.xojo.com/wp-content/uploads/2024/08/image-12.png 784w, https://blog.xojo.com/wp-content/uploads/2024/08/image-12-300x34.png 300w, https://blog.xojo.com/wp-content/uploads/2024/08/image-12-768x86.png 768w" sizes="auto, (max-width: 784px) 100vw, 784px" /></figure>



<p>In the Coding Settings, you can choose: 2, 3, 4, 5, 6 Lines or Resizable. The default is now 3 lines. If more information is shown than will fit in the Syntax Help Area, there is a scrollbar (which you can now actually use since the area won&#8217;t update with new information until you stop moving the mouse).</p>



<p>You should also notice improved syntax help in general. The lookup engine is now better able to infer context to show more accurate information. I&#8217;m particularly pleased that CType now shows in the Syntax Help Area because I can never remember the order of the parameters!</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="234" src="https://blog.xojo.com/wp-content/uploads/2024/08/image-13-1024x234.png" alt="" class="wp-image-13572" srcset="https://blog.xojo.com/wp-content/uploads/2024/08/image-13-1024x234.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/08/image-13-300x68.png 300w, https://blog.xojo.com/wp-content/uploads/2024/08/image-13-768x175.png 768w, https://blog.xojo.com/wp-content/uploads/2024/08/image-13.png 1052w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Standardize Format</h2>



<p>A long-standing request (from 2010!) was to have the Standardize Format option available on the Code Editor command bar. Lots of people like their code formatted nicely and Standardize Format is a great way to do that.</p>



<p>Now you can easily click a button on the command bar to quickly format everything in the code editor, instead of first having to Select All and then choose a contextual menu option.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="948" height="304" src="https://blog.xojo.com/wp-content/uploads/2024/08/image-14.png" alt="" class="wp-image-13573" srcset="https://blog.xojo.com/wp-content/uploads/2024/08/image-14.png 948w, https://blog.xojo.com/wp-content/uploads/2024/08/image-14-300x96.png 300w, https://blog.xojo.com/wp-content/uploads/2024/08/image-14-768x246.png 768w" sizes="auto, (max-width: 948px) 100vw, 948px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>If you really like your code to be formatted automatically, don&#8217;t forget you can always turn on &#8220;Apply standardize format after ending line&#8221; in the Coding Settings.</p>
</blockquote>



<p>And don&#8217;t forget that you can also create your own script to format your code any way you want. Learn more about this in <a href="https://documentation.xojo.com/topics/code_management/custom_code_reformatting.html#custom-code-reformatting" target="_blank" rel="noreferrer noopener">Custom Code Reformatting</a> in the docs. You might also want to try to this <a href="https://github.com/paullefebvre/ReformatCode" target="_blank" rel="noreferrer noopener">powerful reformatting script</a>.</p>



<p>If you have other suggestions for Code Editor improvements, please be sure to create an Issue. One popular suggestion is to have the text under the cursor be highlighted throughout the code editor (see <a href="https://tracker.xojo.com/xojoinc/xojo/-/issues/74741" target="_blank" rel="noreferrer noopener">Issue #74741</a>), which I have started to investigate. Read all about the Xojo <a href="https://documentation.xojo.com/getting_started/using_the_ide/code_editor.html#">Code Editor</a> in the Xojo Docs.</p>



<p><em>Paul learned to program in BASIC at age 13 and has programmed in more languages than he remembers, with Xojo being an obvious favorite. When not working on Xojo, you can find him talking about retrocomputing at <a href="https://goto10.substack.com" target="_blank" rel="noreferrer noopener">Goto 10</a> and </em>on Mastodon @lefebvre@hachyderm.io.</p>



<ul class="wp-block-social-links has-normal-icon-size is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-16018d1d wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-facebook  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/goxojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li>

<li class="wp-social-link wp-social-link-x  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://x.com/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg><span class="wp-block-social-link-label screen-reader-text">X</span></a></li>

<li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/company/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li>

<li class="wp-social-link wp-social-link-github  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://github.com/topics/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg><span class="wp-block-social-link-label screen-reader-text">GitHub</span></a></li>

<li class="wp-social-link wp-social-link-youtube  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.youtube.com/c/XojoInc" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg><span class="wp-block-social-link-label screen-reader-text">YouTube</span></a></li></ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Xojo 2024r3 is Now Available!</title>
		<link>https://blog.xojo.com/2024/10/01/xojo-2024r3-is-now-available/</link>
		
		<dc:creator><![CDATA[Xojo]]></dc:creator>
		<pubDate>Tue, 01 Oct 2024 15:29:54 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[2024r3]]></category>
		<category><![CDATA[Code Editor]]></category>
		<category><![CDATA[Preemptive Threads]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=13757</guid>

					<description><![CDATA[We are excited to announce the arrival of Xojo 2024 Release 3, a major update to the Xojo development platform. This latest version includes over&#8230;]]></description>
										<content:encoded><![CDATA[
<p>We are excited to announce the arrival of Xojo 2024 Release 3, a major update to the Xojo development platform. This latest version includes over 200 changes and improvements, enhancing the overall user experience and expanding the platform&#8217;s capabilities.</p>



<h2 class="wp-block-heading">What&#8217;s New in Xojo 2024 Release 3</h2>



<p>We&#8217;ve been working hard to bring you the best possible cross-platform development experience, and Xojo 2024 Release 3 delivers. Here are some of the highlights:</p>



<div class="wp-block-columns are-vertically-aligned-top is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow">
<p class="has-text-align-center"><strong>Preemptive Threading</strong></p>



<p class="has-text-align-center">In this highly anticipated feature, take your applications to the next level with preemptive threading. Preemptive threads allow you to create more responsive and efficient code, maximizing the potential of your multi-core systems.</p>



<p class="has-text-align-center"><a href="https://blog.xojo.com/tag/preemptive-threads/" data-type="link" data-id="https://blog.xojo.com/2024/10/01/cooperative-to-preemptive-weaving-new-threads-into-your-apps/" target="_blank" rel="noreferrer noopener">Learn how to take advantage of preemptive threads.</a></p>
</div>



<div class="wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow">
<p class="has-text-align-center"><strong>Improved Code Editor</strong></p>



<p class="has-text-align-center">We&#8217;ve made significant improvements to the Code Editor, including row highlighting, a command bar button for Standardize Format, and Syntax Help area size control, making it easier for you to write and maintain your code.</p>



<p class="has-text-align-center"><a href="https://blog.xojo.com/2024/10/01/xojo-code-editor-changes-line-highlight-syntax-help-area-and-standardize-format/" data-type="link" data-id="https://blog.xojo.com/2024/10/01/xojo-code-editor-changes-line-highlight-syntax-help-area-and-standardize-format/" target="_blank" rel="noreferrer noopener">Learn about the new Code Editor changes.</a></p>
</div>
</div>



<div class="wp-block-columns are-vertically-aligned-top is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow">
<p class="has-text-align-center"><strong>Web Framework Updates</strong></p>



<p class="has-text-align-center">The Web framework now uses Bootstrap v5.3.3 and Bootstrap Icons v1.11.3, and supports adding CSS classes to controls, giving you more flexibility and customization options.</p>



<p class="has-text-align-center"><a href="https://blog.xojo.com/2024/10/01/introducing-named-color-and-css-classes-in-xojo-web/" data-type="link" data-id="https://blog.xojo.com/2024/10/01/introducing-named-color-and-css-classes-in-xojo-web/" target="_blank" rel="noreferrer noopener">Read about the Web framework improvements.</a></p>
</div>



<div class="wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow">
<p class="has-text-align-center"><strong>Native Platform Enhancements</strong></p>



<p class="has-text-align-center">macOS Popovers can now be resized, and the Windows HTMLViewer can access the camera and microphone, while the iOS Picture control can access EXIF metadata.</p>



<p class="has-text-align-center"><a href="https://blog.xojo.com/2024/10/01/photos-metadata-and-location-on-ios-pictures/" target="_blank" rel="noreferrer noopener">Check out this post about the iOS picture control enhancements and more.</a></p>
</div>
</div>



<div class="wp-block-columns are-vertically-aligned-top is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow">
<p class="has-text-align-center"><strong>Android Support</strong></p>



<p class="has-text-align-center">Xojo 2024 Release 3 introduces Android tablet support, improved Declare support, and RegEx classes, making it easier for you to create Android apps.</p>



<p class="has-text-align-center"><a href="https://blog.xojo.com/2024/10/01/android-tablet-support/" data-type="link" data-id="https://blog.xojo.com/2024/10/01/android-tablet-support/" target="_blank" rel="noreferrer noopener">Android Tablet Support</a> • <a href="https://blog.xojo.com/2024/10/01/android-declare-and-library-enhancements/" data-type="link" data-id="https://blog.xojo.com/2024/10/01/android-declare-and-library-enhancements/" target="_blank" rel="noreferrer noopener">Enhanced Android Declares &amp; Library</a></p>
</div>



<div class="wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow">
<p class="has-text-align-center"><strong>Fuzzy Searches with SQLite&#8217;s SOUNDEX</strong></p>



<p class="has-text-align-center">We&#8217;ve added support for SQLite&#8217;s SOUNDEX function, which enables fuzzy searches to help you find similar-sounding words and phrases in your database.</p>



<p class="has-text-align-center"><a href="https://blog.xojo.com/2024/10/01/fuzzy-searches-with-sqlites-soundex/" data-type="link" data-id="https://blog.xojo.com/2024/10/01/fuzzy-searches-with-sqlites-soundex/" target="_blank" rel="noreferrer noopener">Read about SQLite SOUNDEX support.</a></p>
</div>
</div>



<p>These updates and enhancements are designed to make your development experience more efficient, productive, and enjoyable. Whether you&#8217;re building a new application or updating an existing one, Xojo 2024 Release 3 provides you with the tools and capabilities you need to succeed.</p>



<h2 class="wp-block-heading">Get Started</h2>



<p>To learn more about Xojo 2024 Release 3 and to get started with the development process, please visit the <a href="https://documentation.xojo.com/versions/2024r3/resources/release_notes/2024r3.html" data-type="link" data-id="https://documentation.xojo.com/versions/2024r3/resources/release_notes/2024r3.html" target="_blank" rel="noreferrer noopener">Xojo 2024r3 Release Notes</a>. The update can be downloaded right now, from the <a href="https://xojo.com/download/" data-type="link" data-id="https://xojo.com/download/" target="_blank" rel="noreferrer noopener">Xojo downloads page</a>.</p>



<h3 class="wp-block-heading">What&#8217;s Next?</h3>



<p>We&#8217;re always working on new features, updates, and enhancements to our platform. If you have any suggestions or ideas, please don&#8217;t hesitate to add them to the <a href="https://tracker.xojo.com/xojoinc/xojo" data-type="link" data-id="https://tracker.xojo.com/xojoinc/xojo" target="_blank" rel="noreferrer noopener">Xojo tracker</a>. We&#8217;re always looking for ways to improve and expand Xojo.</p>



<p class="has-text-align-center"><strong>Thank you for being part of the Xojo community. We&#8217;re excited to see what you&#8217;ll create with Xojo 2024r3!</strong></p>



<ul class="wp-block-social-links has-normal-icon-size is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-16018d1d wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-facebook  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/goxojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li>

<li class="wp-social-link wp-social-link-x  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://x.com/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg><span class="wp-block-social-link-label screen-reader-text">X</span></a></li>

<li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/company/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li>

<li class="wp-social-link wp-social-link-github  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://github.com/topics/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg><span class="wp-block-social-link-label screen-reader-text">GitHub</span></a></li>

<li class="wp-social-link wp-social-link-youtube  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.youtube.com/c/XojoInc" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg><span class="wp-block-social-link-label screen-reader-text">YouTube</span></a></li></ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>5 Xojo IDE Tips to Improve Productivity in Large Projects</title>
		<link>https://blog.xojo.com/2024/09/04/five-xojo-ide-tips-to-improve-productivity-in-large-projects/</link>
		
		<dc:creator><![CDATA[Javier Menendez]]></dc:creator>
		<pubDate>Wed, 04 Sep 2024 16:25:49 +0000</pubDate>
				<category><![CDATA[Learning]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Beginner Tips]]></category>
		<category><![CDATA[Code Editor]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Navigator]]></category>
		<category><![CDATA[Software Development]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=13460</guid>

					<description><![CDATA[When you&#8217;re working on small to medium-sized projects, Xojo&#8217;s default IDE window view is probably all you need: all the elements of the project are&#8230;]]></description>
										<content:encoded><![CDATA[
<p>When you&#8217;re working on small to medium-sized projects, Xojo&#8217;s default IDE window view is probably all you need: all the elements of the project are in plain view and you can easily switch between them. However, things inevitably get more complex when dealing with larger projects. You may need to locate and edit several related items, larger projects likely include multiple methods, events, properties and modules, all of which may be be in their own folders created to organize their functionality or components.</p>



<p>In this article we will highlight several functions provided by the Xojo IDE that allow you to speed up and improve productivity in your large projects.</p>



<span id="more-13460"></span>



<h2 class="wp-block-heading">Filter the Navigator</h2>



<p>The Navigator <a href="https://documentation.xojo.com/getting_started/using_the_ide/navigator.html#getting-started-using-the-ide-navigator-filter" target="_blank" rel="noreferrer noopener">filter</a> field allows you to limit the number of visible items in a section to those matching the typed text. This can filter a list to include only the objects used, such as controls, or even items that match the names of events, methods, properties, constants, etc. -practically any of the items added to the project except the code itself.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="1035" height="794" src="https://blog.xojo.com/wp-content/uploads/2024/08/Filter.png" alt="" class="wp-image-13461" srcset="https://blog.xojo.com/wp-content/uploads/2024/08/Filter.png 1035w, https://blog.xojo.com/wp-content/uploads/2024/08/Filter-300x230.png 300w, https://blog.xojo.com/wp-content/uploads/2024/08/Filter-1024x786.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/08/Filter-768x589.png 768w" sizes="auto, (max-width: 1035px) 100vw, 1035px" /></figure>
</div>


<p>If you need to keep all elements of your project visible while browsing through matching results, it is preferable to use the standard search which you can access using Command + F (on macOS) or Control + F (Windows and Linux).</p>



<h2 class="wp-block-heading">Going Directly to a Project Item</h2>



<p>However, there are many times when you know the exact name of the item you want to select/display; whether it&#8217;s the name of a method, event, or even a control itself. In these cases, it is much quicker to use the Project > Go to Location option (Command + Shift + L on macOS; Control + Shift + L on Windows and Linux).</p>



<p>When you select this command, a dialog box will appear where you can type the path of the item you want to select. So, for example, if you want to go to the method &#8220;myMethod&#8221; found in the window &#8220;MyWindow&#8221; you would type: &#8220;MyWindow.myMethod&#8221;. The text field in that dialog offers auto-completion which means that, in most cases, you will only have to start typing the name of the main item and use the Tab key to access the menu displaying all the matches to select any sub-item you wish to select.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="868" height="474" src="https://blog.xojo.com/wp-content/uploads/2024/08/GoToLocation.png" alt="" class="wp-image-13462" srcset="https://blog.xojo.com/wp-content/uploads/2024/08/GoToLocation.png 868w, https://blog.xojo.com/wp-content/uploads/2024/08/GoToLocation-300x164.png 300w, https://blog.xojo.com/wp-content/uploads/2024/08/GoToLocation-768x419.png 768w" sizes="auto, (max-width: 868px) 100vw, 868px" /></figure>
</div>


<p>Additionally, and unlike the filter field, the hierarchy of the project elements will remain visible in the Navigator as they are.</p>



<h2 class="wp-block-heading">Powerful Searches</h2>



<p>This is undoubtedly the most powerful option that you can access using the keyboard shortcut Command + F (on macOS) or Ctrl + F (Windows, Linux), or by clicking on the magnifying glass icon in the bottom bar of the IDE.</p>



<p>Once you access the Find panel and start typing in the search field, the list below will start to populate with all the matches (by default); but you will probably find it more useful in larger projects to have the list refresh after you press the Return key. To do this, go to the Preferences window and, in the General section, change the &#8220;Find/Filter results appear&#8221; option to &#8220;After pressing Enter/Return&#8221;.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="1624" height="1040" src="https://blog.xojo.com/wp-content/uploads/2024/08/FindFilterPreference.png" alt="" class="wp-image-13463" srcset="https://blog.xojo.com/wp-content/uploads/2024/08/FindFilterPreference.png 1624w, https://blog.xojo.com/wp-content/uploads/2024/08/FindFilterPreference-300x192.png 300w, https://blog.xojo.com/wp-content/uploads/2024/08/FindFilterPreference-1024x656.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/08/FindFilterPreference-768x492.png 768w, https://blog.xojo.com/wp-content/uploads/2024/08/FindFilterPreference-1536x984.png 1536w" sizes="auto, (max-width: 1624px) 100vw, 1624px" /></figure>
</div>


<p>While by default the Find window displays matches found throughout the entire project, there are times when you may want to narrow it down to either the selected item, including any subclasses that may be based on that item, or simply the item in question; you can do this by using the following buttons:</p>


<div class="wp-block-image">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="188" height="74" src="https://blog.xojo.com/wp-content/uploads/2024/08/SearchOptions.png" alt="" class="wp-image-13464"/></figure>
</div>


<p>Another added advantage of the search area is that it keeps a history of previously performed searches, thus speeding up the process when you need to revisit a new group of elements. In addition, you can change from simple (textual) searches to the more powerful use of regular expressions (RegEx) when looking for elements in your project.</p>



<p>Of course, this same panel also allows you to replace the searched text with other text on all the matches shown… but be careful before confirming. Make sure that they truly apply to the elements you want and not to others just because they start with the same word entered in the search field!</p>



<h2 class="wp-block-heading">Bookmarks: Sitting There for You</h2>



<p>In many cases, you will use the above systems to edit the code in a given method or event; especially if these are areas of code that you visit frequently. If that is the case, then you will find <a href="https://documentation.xojo.com/getting_started/using_the_ide/code_editor.html#getting-started-using-the-ide-code-editor-breakpoints-and-bookmarks">Bookmarks</a> a really useful feature.</p>



<p>You can add or remove Bookmarks in the code editor by accessing the contextual menu from the currently selected line of code. You can also add as many Bookmarks as you need to a single code block, which is especially useful for large blocks of code on a given method, for example.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="1544" height="1048" src="https://blog.xojo.com/wp-content/uploads/2024/08/AddBookmark.png" alt="" class="wp-image-13465" srcset="https://blog.xojo.com/wp-content/uploads/2024/08/AddBookmark.png 1544w, https://blog.xojo.com/wp-content/uploads/2024/08/AddBookmark-300x204.png 300w, https://blog.xojo.com/wp-content/uploads/2024/08/AddBookmark-1024x695.png 1024w, https://blog.xojo.com/wp-content/uploads/2024/08/AddBookmark-768x521.png 768w, https://blog.xojo.com/wp-content/uploads/2024/08/AddBookmark-1536x1043.png 1536w" sizes="auto, (max-width: 1544px) 100vw, 1544px" /></figure>
</div>


<p>Once you have all your Bookmarks defined, you will simply need to select the menu option Bookmarks > Show All to have them displayed in the search area where you can select them.</p>



<p><strong>Tip:</strong> Use the Preferences &gt; General &gt; Menu &gt; Edit Menu Shortcuts option to assign a keyboard shortcut to the Bookmarks &gt; Show All command. This will make it quicker to update the bookmarks listed in the Search area when they are not listed.</p>



<h2 class="wp-block-heading">Tabs and Workspaces</h2>



<p>Sometimes it is preferable to have several items in view when working on a large project, so that you can switch between them quickly; or to have the Layout Editor and the Code Editor for the same object. This is where Tabs and <a href="https://documentation.xojo.com/getting_started/using_the_ide/introduction.html#getting-started-using-the-ide-introduction-workspace" data-type="link" data-id="https://documentation.xojo.com/getting_started/using_the_ide/introduction.html#getting-started-using-the-ide-introduction-workspace" target="_blank" rel="noreferrer noopener">Workspaces</a> are extremely useful.</p>



<p>By default, the Xojo IDE window has a single tab that displays all the elements added to the project, but you can open as many tabs as you need, and these tabs will be preserved when you close and reopen the same project, just as Workspaces will.</p>



<p>So, if you need to focus on a particular module or class, you can double-click on the item in the Navigator to open it in a new tab. Want more clarity, especially if your tabs bar is overcrowded? In that case, you can drag the tab in question outside the window boundaries to open it as a new IDE window (a new Workspace). Of course, you can also use keyboard shortcuts to move between open tabs in a single IDE window.</p>



<p>As you can see, Workspaces are new IDE windows for a single project. In fact, you can have as many as you need using the New &gt; Workspace menu option. However, this option is only recommended if your setup has a high-resolution screen or multiple screens connected to your computer.</p>



<h2 class="wp-block-heading">Conclusions</h2>



<p>As we have seen, using filtering, searches, bookmarks, tabs and even the &#8220;Go To Location&#8221; command, among other options mentioned, will greatly speed up navigation when you are working on large projects.</p>



<p>What other IDE techniques do you use? Share them with us on the Xojo <a href="https://forum.xojo.com/">Forum</a> or on social media.</p>



<p>Happy programming with Xojo!</p>



<p><em>Javier Menendez is an engineer at Xojo and has been using Xojo since 1998. He lives in Castellón</em>, <em>Spain and hosts regular Xojo hangouts en español. Ask Javier questions on Twitter at <a href="https://twitter.com/xojoes" target="_blank" rel="noreferrer noopener">@XojoES</a> or on the <a href="https://forum.xojo.com/u/javier_menendez/summary" target="_blank" rel="noreferrer noopener">Xojo Forum</a>.</em></p>



<ul class="wp-block-social-links has-normal-icon-size is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-16018d1d wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-facebook  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/goxojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li>

<li class="wp-social-link wp-social-link-x  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://x.com/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg><span class="wp-block-social-link-label screen-reader-text">X</span></a></li>

<li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/company/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li>

<li class="wp-social-link wp-social-link-github  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://github.com/topics/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg><span class="wp-block-social-link-label screen-reader-text">GitHub</span></a></li>

<li class="wp-social-link wp-social-link-youtube  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.youtube.com/c/XojoInc" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg><span class="wp-block-social-link-label screen-reader-text">YouTube</span></a></li></ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Code Editor New Features: Swap and Duplicate Lines</title>
		<link>https://blog.xojo.com/2023/03/28/code-editor-new-features-swap-and-duplicate-lines/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Tue, 28 Mar 2023 11:00:00 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Code Editor]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Rapid Application Development]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Xojo Code]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=11452</guid>

					<description><![CDATA[Xojo's Code Editor now lets you move a line or a selection up or down or duplicate entire lines (or a selection). To swap lines, put the cursor on a line and press Option+Up Arrow (Mac) or Alt+Up Arrow (Win/Linux) to move the line up in the code. Press Down arrow to move down. ]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;ve used other code editors such as Visual Studio Code or BBEdit you may have run across a feature that lets you easily move a line or a selection up or down in the editor. Similarly, you may have used the command to duplicate entire lines (or a selection).</p>



<p>Starting with Xojo 2023r1 you can now do this in the Xojo Code Editor.</p>



<p>To swap lines, put the cursor on a line and press Option+Up Arrow (Mac) or Alt+Up Arrow (Win/Linux) to move the line up in the code. Press Down arrow to move down. Here&#8217;s a quick view of how this looks:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="518" src="https://blog.xojo.com/wp-content/uploads/2023/03/CleanShot-2023-03-23-at-15.09.16.gif" alt="" class="wp-image-11453"/></figure>



<p>It also works with a selection:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="482" src="https://blog.xojo.com/wp-content/uploads/2023/03/CleanShot-2023-03-23-at-15.11.17.gif" alt="" class="wp-image-11454"/></figure>



<p>To duplicate a line, put the cursor on the line and press Option+Shift+Down Arrow (use Alt instead of Option on Windows/Linux):</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="429" src="https://blog.xojo.com/wp-content/uploads/2023/03/CleanShot-2023-03-23-at-15.13.06.gif" alt="" class="wp-image-11455"/></figure>



<p>This also works with a selection:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="587" src="https://blog.xojo.com/wp-content/uploads/2023/03/CleanShot-2023-03-23-at-15.14.34.gif" alt="" class="wp-image-11456"/></figure>



<p>I hope these new commands can make your time in the Xojo Code Editor more productive!</p>



<p><em>Paul learned to program in BASIC at age 13 and has programmed in more languages than he remembers, with Xojo being an obvious favorite. When not working on Xojo, you can find him talking about retrocomputing at <a href="https://goto10.substack.com" target="_blank" rel="noreferrer noopener">Goto 10</a> and </em>on Mastodon @lefebvre@hachyderm.io.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>2022: Welcome Back!?</title>
		<link>https://blog.xojo.com/2022/12/13/2022-welcome-back/</link>
		
		<dc:creator><![CDATA[Alyssa Foley]]></dc:creator>
		<pubDate>Tue, 13 Dec 2022 11:00:00 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[XDC]]></category>
		<category><![CDATA[Xojo Cloud]]></category>
		<category><![CDATA[Code Assistants]]></category>
		<category><![CDATA[Code Editor]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Multi-Platform Development]]></category>
		<category><![CDATA[Rapid Application Development]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[Xojo API 2.0]]></category>
		<category><![CDATA[Xojo Framework]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=10967</guid>

					<description><![CDATA[Does anyone else feel like 2022 is the first year in many years where we have gotten back together, in-person, for big events, small get-togethers, travel and even the daily office grind? Whether that is the right thing to have done or not, it seems that is what many of us did in 2022. Though we all tried new things to stay connected over the past few years (Zoom-fatigue anyone?), there's nothing like seeing an old friend after years apart.]]></description>
										<content:encoded><![CDATA[
<p>Does anyone else feel like 2022 is the first year in many years where we have gotten back together, in-person, for big events, small get-togethers, travel and even the daily office grind? Whether that is the right thing to have done or not, it seems that is what many of us did in 2022. Though we all tried new things to stay connected over the past few years (Zoom-fatigue anyone?), there&#8217;s nothing like seeing an old friend after years apart.</p>



<p>Xojo&#8217;s team was all vaxxed-up and so happy to get together in Nashville for #XDC2022. Tennessee&#8217;s Music City was a delightful backdrop for the first in-person Xojo event since 2019. Check out the short highlights <a href="https://youtu.be/t8xpWVL5pEM">video</a> from Nashville and then join us for #XDC2023 in London, UK. You can <a href="http://xojo.com/xdc/london/index.html">register</a> here.</p>



<p>This year the Xojo team and community welcomed a new Xojo engineer, Ricardo Cruz. Ricardo has applied his expertise to advance and improve Xojo Web. To quote one of Xojo&#8217;s engineers, &#8220;Ricardo coming in has been awesome,&#8221; a sentiment echoed on the Forum and the community in Nashville. </p>



<p>Xojo Web has come so far this year. Control reliability has improved, IDE previews have improved and reconnections have really improved. The web framework can now more often reconnect back to the same web session if it still exists. This is one of the things Ricardo is really happy about, &#8220;You can switch to your email app in your mobile, copy something to the clipboard, come back to the web app and it is still there, ready to continue.&#8221; Under the hood, some dependencies received updates, like jQuery. As a user, you don&#8217;t have to do anything, just use the new Xojo version! Try to tell that to another web developer, that&#8217;s sci-fi outside of Xojo. Also, thanks to the community, the memory and CPU usage continues to be improved release after release. &#8220;Honestly from my perspective it is just fun to play with little projects in it because it has really matured,&#8221; says Xojo&#8217;s Director of Engineering, Travis Hill. </p>



<p>Speaking of technical achievements, this year we added two new targets to Xojo: Windows on ARM 64 and Linux on ARM 64. On Windows, you can natively deploy to ARM-based tablets and laptops that run Windows. On Linux, you can deploy to 64-bit Raspberry Pi which can address significantly more RAM than 32-bit versions. </p>



<p>We built the <a href="https://www.xojo.com/cloud/">Xojo Cloud</a> Control Panel with an updated version of Xojo, and thanks to some Web framework improvements the controls now stay more responsive under load. Plus we&#8217;ve added Xojo Cloud servers in Sydney, Australia for web developers in Australia and New Zealand. We also continued improving and testing our upcoming support for Android, which is now feature complete and awaiting some remaining bug fixes before we make it available to everyone.</p>



<p>In addition, we want to brag about a few technical improvements, including the numerous <a href="https://blog.xojo.com/tag/pdf/">PDF updates</a> implemented by Xojo Engineer and now PDF expert, Javier Menéndez. Also there is the option to generate&nbsp;Program Database <a href="https://blog.xojo.com/2022/07/25/what-the-pdb-is-this/">(PDB)</a>&nbsp;files on Windows and improved <a href="https://blog.xojo.com/2022/10/12/improving-multi-monitor-support-on-windows/">multi-monitor support</a> shepherded by Xojo Engineer William Yu. The list goes on: <a href="https://blog.xojo.com/2022/04/05/using-the-new-user-code-assistants-feature/">Code Assistants</a>, <a href="https://blog.xojo.com/2022/04/05/on-device-ios-debugging-in-xojo/">on-device debugging in iOS</a>, new <a href="https://documentation.xojo.com/">Xojo Documentation</a> site, adding <a href="https://blog.xojo.com/2022/01/07/desktop-adding-controls-at-runtime/">Controls at runtime</a>, loading speed faster for big projects, and the time team-Lefebvre built a <a href="https://blog.xojo.com/2022/03/03/a-web-app-to-calculate-combat-rolls-in-twilight-imperium/">web app</a> to Calculate Combat Rolls in Twilight Imperium&#8230;</p>



<p>Inside Xojo we improved a lot too. Besides welcoming Ricardo and his beard to the team, we migrated Xojo&#8217;s bug and feature reporting platform from the internally managed Feedback tool to the much loved <a href="https://tracker.xojo.com">Issues</a>. This has increased productivity, streamlined work flow, made it easier to search and find, comment, edit. The team couldn&#8217;t be happier!</p>



<p>This year also included Xojo&#8217;s first Bug Bash in a long time! During the Bug Bash, Xojo&#8217;s <a href="https://blog.xojo.com/2022/10/12/bountiful-bug-bashing/">Code Editor</a> got some much needed improvements resulting in noticeably faster updates. Plus updates to the Syntax Help Area thanks to Xojo Engineer and retro-computing expert, Paul Lefebvre. Besides the very real smashing of 100 bugs, the bash had the unintended consequence of giving the engineers an opportunity to work on things they don&#8217;t normally work on, giving engineers opportunities to collaborate and better solve things.</p>



<p>All in all, 2022 was a year of forward movement for Xojo. Which has us leaning into 2023 with a lot of excitement and expectation. Our team is committed to continuing to make Xojo the best cross-platform development tool and we thank you for being part of Xojo&#8217;s continued success!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bountiful Bug Bashing</title>
		<link>https://blog.xojo.com/2022/10/12/bountiful-bug-bashing/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Wed, 12 Oct 2022 13:46:03 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Bug Bash]]></category>
		<category><![CDATA[Code Editor]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Multi-Platform Development]]></category>
		<category><![CDATA[Rapid Application Development]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=10798</guid>

					<description><![CDATA[For Xojo 2022r3, the team worked on a wide variety of things for the Bug Bash. Two notable areas that I worked on were the Code Editor and the updates to the Syntax Help Area and I thought you might like to hear a bit about them.]]></description>
										<content:encoded><![CDATA[
<p>For 2022r3, the team worked on a wide variety of things for the Bug Bash. Two notable areas that I worked on were the Code Editor and the updates to the Syntax Help Area and I thought you might like to hear a bit about them.</p>



<h2 class="wp-block-heading">Code Editor</h2>



<p>The <a href="https://documentation.xojo.com/getting_started/using_the_ide/code_editor.html#code-editor">Code Editor</a> is one of the most commonly used parts of Xojo, so we are always trying to improve it. One of the problems that been reported with it is that it can use quite a bit of CPU. There was also a report of disk access when typing in the Code Editor. After studying the code, I determined that disk access could have been occurring during code hint lookups (that were searching a SQLite database) while typing, but this problem was no longer occurring with the switch to the new documentation in 2022r1 which uses a much smaller in-memory database.</p>



<p>However, I did notice that the Code Editor was sometimes doing too much work. For one example, the code indenting and folding was updated after every character was typed.</p>



<p>Since indents and folding do not usually need to be updated while you are typing, we changed it so that those things are updated when you pause typing, press return or do specific actions that warrant an immediate update (pasting text, for example). The benefit to this change is that much less CPU is used while typing in the code editor and it is harder to type faster than the code editor can respond.</p>


<div class="wp-block-image">
<figure class="alignright size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.xojo.com/wp-content/uploads/2022/10/DALL·E-2022-10-06-14.16.54-A-cartoon-programmer-working-outside-on-a-laptop-with-a-dog.--1024x1024.png" alt="" class="wp-image-10805" width="346" height="346" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/DALL·E-2022-10-06-14.16.54-A-cartoon-programmer-working-outside-on-a-laptop-with-a-dog.-.png 1024w, https://blog.xojo.com/wp-content/uploads/2022/10/DALL·E-2022-10-06-14.16.54-A-cartoon-programmer-working-outside-on-a-laptop-with-a-dog.--300x300.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/DALL·E-2022-10-06-14.16.54-A-cartoon-programmer-working-outside-on-a-laptop-with-a-dog.--150x150.png 150w, https://blog.xojo.com/wp-content/uploads/2022/10/DALL·E-2022-10-06-14.16.54-A-cartoon-programmer-working-outside-on-a-laptop-with-a-dog.--768x768.png 768w" sizes="auto, (max-width: 346px) 100vw, 346px" /></figure>
</div>


<p>There were other similar improvements to the mouse movement. Previously the Syntax Help Area would be updated live as the mouse moved around the Code Editor. This was distracting and used a lot of CPU as it looked up what to display. With this release, the Syntax Help Area is only updated when the mouse stops moving. This is far less distracting when moving the mouse around and you should no longer see the CPU spike. A nice benefit of the Code Editor using less CPU is that your laptop battery should last longer when you are coding in Xojo.</p>



<p>Also related to the Syntax Help, sometimes it would not show syntax hints based on where the mouse cursor was and sometimes you had to click to get the hint to appear. A few bugs with that were found and fixed so that you should now have more consistent and accurate information.</p>



<p>Some other Code Editor fixes include:</p>



<ul class="wp-block-list"><li>The text cursor no longer sometimes remains visible when the Code Editor does not have focus. I found it confusing when that happened.</li><li>Syntax hints are displayed for more keywords, such with looping and conditionals.</li><li>Option-Right-Arrow no longer positions the cursor incorrectly in certain situations.</li></ul>



<h2 class="wp-block-heading">Syntax Help</h2>



<p>It had been a long-standing complaint that the Syntax Help Area only showed the method signature for a single method, which was not all that helpful when it was a method that had multiple overloaded signatures, which is frequent with object-oriented programming.</p>



<p>Travis initially implemented the changes to allow the Syntax Help Area to show multiple method overloads. You may be surprised to learn that this actually required changes to the AutoComplete component.</p>


<div class="wp-block-image">
<figure class="alignleft size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.xojo.com/wp-content/uploads/2022/10/DALL·E-2022-10-06-14.19.59-A-cartoon-programmer-working-at-a-desk-with-a-cat-1024x1024.png" alt="" class="wp-image-10807" width="320" height="320" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/DALL·E-2022-10-06-14.19.59-A-cartoon-programmer-working-at-a-desk-with-a-cat.png 1024w, https://blog.xojo.com/wp-content/uploads/2022/10/DALL·E-2022-10-06-14.19.59-A-cartoon-programmer-working-at-a-desk-with-a-cat-300x300.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/DALL·E-2022-10-06-14.19.59-A-cartoon-programmer-working-at-a-desk-with-a-cat-150x150.png 150w, https://blog.xojo.com/wp-content/uploads/2022/10/DALL·E-2022-10-06-14.19.59-A-cartoon-programmer-working-at-a-desk-with-a-cat-768x768.png 768w" sizes="auto, (max-width: 320px) 100vw, 320px" /></figure>
</div>


<p>There were a lot of changes, but they were not too difficult. The trickier part was finding the various permutations and edge cases, which is where I came in. Initially we had the Syntax Help Area expand to show all the overloads, but during pre-release testing we noticed this could cause it to expand to fill the entire code area if you had a lot of overloads (such as with <a href="https://github.com/xojo/XojoUnit">XojoUnit’s</a> Assert() methods). We decided to instead have a max size of 4 lines and use a scrollbar if there were more.</p>



<p>When reviewing this display code I noticed that the Syntax Help Area was always meant to use the same font as the Code Editor, but due to a bug (from 2013 or so) it was unintentionally using the system font. Using the Code Editor font for this makes it much easier to read.</p>



<p>While in this part of the code I also improved the display of the descriptions that appear in the Syntax Help Area (after the member syntax) when they are set on project item members (using the Description field in the Inspector). In addition, Constructor descriptions are now shown.</p>



<h2 class="wp-block-heading">Thanks</h2>



<p>Xojo has been around for over 20 years now and with continued iterative improvements throughout the years has remained a useful and productive tool for thousands of developers making desktop, web and mobile apps. I am honored to be able to work on it and am always in awe of the great things that I see our users create, things that they may not have been able to make using other more complicated tools.</p>



<p>I want to thank everyone for their bug bash submissions and especially those that helped test during the 2022r3 pre-release period. Your well-crafted <a href="https://tracker.xojo.com/xojoinc/xojo/-/issues">Issues </a>with sample projects were appreciated! As announced at the <a href="https://blog.xojo.com/2022/10/04/xojo-developer-retreat-recap/">Xojo Developer Retreat last month</a>, we are going to continue this with two weeks of bug bashing at the start of each release cycle, which begins around the time a release such as this ships.</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Using the New User Code Assistants Feature</title>
		<link>https://blog.xojo.com/2022/04/05/using-the-new-user-code-assistants-feature/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Tue, 05 Apr 2022 13:30:00 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Code Assistants]]></category>
		<category><![CDATA[Code Editor]]></category>
		<category><![CDATA[Rapid Application Development]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<category><![CDATA[XojoScript]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=10131</guid>

					<description><![CDATA[With Xojo 2022 Release 1, you can use XojoScript to create Code Assistants for use with selected text in the Code Editor. Here’s a quick example of one that swaps the prefix of a comment:]]></description>
										<content:encoded><![CDATA[
<p>With Xojo 2022 Release 1, you can use <a href="https://documentation.xojo.com/api/code_execution/xojoscript.html">XojoScript</a> to create <a href="https://documentation.xojo.com/getting_started/using_the_ide/code_editor.html#getting-started-using-the-ide-code-editor-code-assistants">Code Assistants</a> for use with selected text in the <a href="https://documentation.xojo.com/getting_started/using_the_ide/code_editor.html#">Code Editor</a>. Here’s a quick example of one that swaps the prefix of a comment:</p>



<pre class="wp-block-preformatted">// This script takes the current selected comment
// and changes the comment prefix.

Function Name() As String
  Return "Swap Comment Prefix"
End Function

Function CanEdit(selection As String) As Boolean
  // Check if comments starts with // or '.
  Return Left(selection, 2) = "//" Or Left(selection, 1) = "'"
End Function

Function Edit(selection As String) As String
  // Swap // with ' or swap ' with //
  If Left(selection, 1) = "'" Then
    Return Replace(selection, "'", "//")
  ElseIf Left(selection, 2) = "//" Then
    Return Replace(selection, "//", "'")
  End If
End Function</pre>



<p>This is not too lengthy, so let’s examine the parts. With a code assistant, there are three methods that are required: Name, CanEdit and Edit.</p>



<p>The <strong>Name()</strong> method returns a string containing the name that will appear in the Code Assistants menu. You can nest items using slashes, so “Paul/Swap Comments Prefix” would have this appear in Code Assistants-&gt;Paul-&gt;Swap Comments Prefix.</p>



<p>The <strong>CanEdit() </strong>method provides the code editor selection as a parameter. In this method you should return True if this code assistant is allowed to edit the selection. If you return True, the name will appear in the Code Assistants menu. If you return False it will not appear in the menu.</p>



<p>The code above checks if the selected text starts with the comment prefixes we want to swap: // or ‘.</p>



<p>The <strong>Edit()</strong> method is where you modify the selection, returning new text that will replace the selection in the Code Editor. This method does a single replace of “//“ with “’” and “’” with “//“.</p>



<p>Save the above script as SwapCommentPrefix.xojo_code_assistant and copy it to the Scripts folder in your IDE install folder.</p>



<p>If Xojo was running, you can tell it to reload those scripts by holding down Cmd (on Mac) or Control (Windows/Linux) when right-clicking.</p>



<p>Now type a comment like this:</p>



<pre class="wp-block-preformatted">‘ This is a comment.</pre>



<p>Select that comment and right-click. Choose Code Assistants-&gt;Swap Comment Prefix.</p>



<p>The line now shows as:</p>



<pre class="wp-block-preformatted">// This is a comment.</pre>



<p>For other sample Code Assistant scripts, go to Examples/Advanced/IDE Scripts/Code Assistants in the Xojo <a href="https://www.xojo.com/download/">download</a> folder.</p>



<p>Learn more in this <a href="https://youtu.be/GDWQC1c6svQ">video</a>! Be sure to share your Code Assistant scripts in the <a href="https://forum.xojo.com">forum</a>!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Things in 2021 Release 3 You May Have Missed Because You Might Not Have Wanted to Read All 220+ Items in the Release Notes</title>
		<link>https://blog.xojo.com/2021/11/18/things-in-2021-release-3-you-may-have-missed-because-you-might-not-have-wanted-to-read-all-220-items-in-the-release-notes/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Thu, 18 Nov 2021 14:00:00 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Auto-Complete]]></category>
		<category><![CDATA[Code Editor]]></category>
		<category><![CDATA[Declares]]></category>
		<category><![CDATA[Unicode]]></category>
		<category><![CDATA[Windows ARM]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=9608</guid>

					<description><![CDATA[For those of you that don't consider reading through over 220 items as fun as I do, here are a few things I thought I would highlight, in no particular order...]]></description>
										<content:encoded><![CDATA[
<p>Because we make <a href="https://documentation.xojo.com/resources/release_notes/2021r3.html">so many fixes and changes</a> (and even add a few new things) in each Xojo release, it can be daunting to read through the entire <a href="https://documentation.xojo.com/resources/release_notes/2021r3.html">release notes</a>. I encourage you to do so, though, because it&#8217;s fun!</p>



<p>For those of you that don&#8217;t consider reading through over 220 items as fun as I do, here are a few things I thought I would highlight, in no particular order.</p>



<ul class="wp-block-list"><li><strong>Desktop projects now save icon resources as compressed PNGs.</strong> This can greatly reduce binary/xml project file size and also reduce the .xojoresources file size in text projects. In the case of the Eddie&#8217;s Electronics sample project, the binary project dropped from 11MB to 780K, the XML project from 22MB to 1.1MB and the .xojoresources file from 11MB to 388K.</li></ul>



<p></p>



<ul class="wp-block-list"><li>Need to iterate through a String&#8217;s characters in a completely unicode-friendly way (including emojis)? Rather than using the <a href="https://documentation.xojo.com/api/data_types/string.html#string-characters">String.Characters</a> iterator, <strong>use the new <a href="https://documentation.xojo.com/api/text/str.htmling.Codepoints">String.Codepoints</a> iterator which returns one value for each unicode scalar</strong>.</li></ul>



<p></p>



<ul class="wp-block-list"><li> <strong>You can now install Xojo on Windows ARM 64-bit.</strong> Xojo itself remains an Intel x86-64 binary, but Windows ARM has a translation system built-in that will allow Xojo to run. This should allow those of you using ARM Windows in a VM on an Apple Silicon Mac to use Xojo there. If you&#8217;re interested in native Xojo support for Windows ARM, subscribe to <a href="http://&lt;feedback://showreport?report_id=62672&gt;">Feedback Case 62672</a> so you&#8217;ll be notified of updates.</li></ul>



<p></p>



<ul class="wp-block-list"><li><strong>Auto-complete continues to get smarter and faster</strong>. It can&#8217;t quite write your code for you, but now it does a better job of substituting text and offering suggestions, among other things.</li></ul>



<p></p>



<ul class="wp-block-list"><li><strong>The Code Editor has more improvements</strong>, particularly in the area of code folding. Another improvement is that you can use Go To Location to jump to a specific line in the code using “#50” (for example) in addition to the previously allowed &#8220;50&#8221;.</li></ul>



<p></p>



<ul class="wp-block-list"><li>For use with Declares, there is <strong>now an OSHandle class</strong> that can handle either an Integer or a Ptr.</li></ul>



<p></p>



<ul class="wp-block-list"><li>And although we mentioned it in <a href="https://blog.xojo.com/2021/09/20/the-return-of-building-for-macos-from-windows-and-linux/">another blog post</a>, I&#8217;d still like to remind people that you can again <strong>build your Mac apps from Windows and Linux</strong>. Improvements in the open-source linker project used by Xojo allowed us to bring this feature back. Of course, please continue to test your Mac apps on an actual Mac before you ship them.</li></ul>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>New Xojo Code Editor Improvements</title>
		<link>https://blog.xojo.com/2021/07/22/new-xojo-code-editor-improvements/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Thu, 22 Jul 2021 11:44:00 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Code Editor]]></category>
		<category><![CDATA[Xojo IDE]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=8819</guid>

					<description><![CDATA[There are several Code Editor improvements in Xojo 2021 Release 2 that you might enjoy: Line Numbering and the Gutter, Code Folding, Super Return and more...]]></description>
										<content:encoded><![CDATA[
<p>There are several Code Editor improvements in Xojo 2021 Release 2 that you might enjoy. Read on to learn more about them.</p>



<h2 class="wp-block-heading">Line Numbering and the Gutter</h2>



<p>Code Editor Line Numbering is now an IDE preference instead of a per-Code Editor preference. In the Preference (or Options) window, choose Coding and then turn on &#8220;Show line numbers in gutter&#8221; to enable line numbering on all Code Editors.</p>



<p>With Line Numbering enabled, the gutter area is a bit wider to show the line number. As you move the cursor around in the Code Editor, notice that the gutter highlights to indicate the line you are on. This can be very handy to help find where the cursor is in a busy method.</p>



<p>You can also now click on a line number in the gutter to select the entire line. This is helpful if you want to copy the entire line, but it is also a great way to make it a bit easier to study a particular line of code more carefully.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="443" src="https://blog.xojo.com/wp-content/uploads/2021/07/CleanShot-2021-07-09-at-14.48.09.gif" alt="" class="wp-image-8826"/></figure>



<h2 class="wp-block-heading">Code Folding</h2>



<p>If you’ve not used it before, Code Folding allows you to collapse (or fold) code to help reduce clutter in the Code Editor. You do this by clicking on the small “-” indicator that appears to the left of a code block. When code is folded that indicator changes to a “+”, which you can click to make the code visible again. Folded code is never removed, it is just temporarily hidden.</p>



<p>In this release, we improved the “-“ and “+” indicators so that they show with a rounded rectangle to be a bit friendlier. The code folding line highlights are also now slightly less distracting.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="432" src="https://blog.xojo.com/wp-content/uploads/2021/07/CleanShot-2021-07-09-at-14.50.01.gif" alt="" class="wp-image-8828"/></figure>



<h2 class="wp-block-heading">Super Return</h2>



<p>When you are on an incomplete line of code, you can press Shift-Return (also known as Super Return) to automatically provide some assistance. For example, start typing an If statement like this:</p>



<pre class="wp-block-preformatted">If True</pre>



<p>and press Shift-Return after typing True. The Code Editor will fill in the “Then” and “End If” and put the cursor between them:</p>



<pre class="wp-block-preformatted">If True Then
  &lt;-- Cursor here
End If</pre>



<p>When you press Super Return with a For loop, not only is the Next added as it always was, but if you have an inline loop variable, then it is added to the Next as well. This can make it easier to match nested loops.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="347" src="https://blog.xojo.com/wp-content/uploads/2021/07/CleanShot-2021-07-09-at-14.43.35.gif" alt="" class="wp-image-8821"/></figure>



<p>Although this was added in 2021 Release 1, you may also find this tip useful: Press Super Return on a comment line to start a new line with a comment.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="412" src="https://blog.xojo.com/wp-content/uploads/2021/07/CleanShot-2021-07-09-at-14.44.48.gif" alt="" class="wp-image-8822"/></figure>



<p>Related to Super Return is Option Return or Control-Alt Return on Windows/Linux. When you press Option Return on a line, a new line is added with the code continuation character placed at the end of the current line. </p>



<p>In 2021 Release 2, when you press Option Return when inside quotes for a String, the string is completed and things are extended to the next line.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="401" src="https://blog.xojo.com/wp-content/uploads/2021/07/CleanShot-2021-07-09-at-14.46.03.gif" alt="" class="wp-image-8824"/></figure>



<h2 class="wp-block-heading">Other Improvements</h2>



<p>The Project -&gt; Go To Location feature lets you jump to a specific method in your project by typing the class and name, for example: CustomerDetailsWindow.LoadCustomers</p>



<p>In 2021 Release 2 you can now also add a line number to jump to a specific part of the code. This is great when asking someone else on the team to look at some code, especially in a lengthy method. You can do this by putting a “#” followed by the line number like this: CustomerDetailsWindow.LoadCustomers#15</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="449" src="https://blog.xojo.com/wp-content/uploads/2021/07/CleanShot-2021-07-09-at-14.51.33.gif" alt="" class="wp-image-8830"/></figure>



<p>Sometimes you want to get the text for a method signature, but don’t want to copy the entire method and all its code (which was what you previously got when you select a method in the Navigator and choose Copy). Now you can right-click on the method signature in the header of the Code Editor and choose “Copy signature” to copy the signature to the clipboard.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="425" src="https://blog.xojo.com/wp-content/uploads/2021/07/CleanShot-2021-07-09-at-14.53.48.gif" alt="" class="wp-image-8832"/></figure>



<p>As usual, be sure to check out the <a href="https://documentation.xojo.com/resources/release_notes/2021r2.html">full release notes for 2021 Release 2</a> as there are other cool things to find or <a href="http://v">download</a> 2021 Release 2 and try it yourself!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Xojo Code Editor: Auto-complete and Scope</title>
		<link>https://blog.xojo.com/2017/12/18/auto-complete-and-scope/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Mon, 18 Dec 2017 10:30:39 +0000</pubDate>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Auto-Complete]]></category>
		<category><![CDATA[Code Editor]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=3540</guid>

					<description><![CDATA[The Xojo Code Editor has a wonderful auto-complete feature that makes typing your code and discovering variables, methods and properties much easier. To activate auto-complete press the tab key after you have started typing some code.]]></description>
										<content:encoded><![CDATA[<p>The Xojo Code Editor has a wonderful auto-complete feature that makes typing your code and discovering variables, methods and properties much easier. To activate auto-complete press the tab key after you have started typing some code.</p>
<p><span id="more-3540"></span></p>
<p>When dealing with how variables are shown by auto-complete, you first need to understand the concept of a variable&#8217;s &#8216;visibility&#8217; or scope.</p>
<p>When a variable is declared, its scope is limited to the block of code in which it is declared. For example, add a method with this code:</p>
<pre>Dim myVariable As Integer
For myVariable = 0 To 9
  // Do something
  MsgBox(myVariable.ToText)
Next</pre>
<p>In the above code the scope of the variable <em>myVariable</em> is the entire method. This includes being within the &#8216;For&#8230;Next&#8217; loop.</p>
<p>Now consider this code in a method:</p>
<pre>For myVariable As Integer = 0 To 9
  // Do something
  MsgBox(myVariable.ToText)
Next
// myVariable cannot be used here and will not auto-complete</pre>
<p>The block of code within which <em>myVariable</em> is declared is the &#8216;For&#8230;Next&#8217; loop.  The scope starts at &#8216;For&#8217; and ends at &#8216;Next&#8217;. Because of this limiting scope <em>myVariable</em> does not auto-complete outside the loop and if you type it manually in code like this you will get a compile error for that line that says &#8220;This item does not exist&#8221;:</p>
<pre>For myVariable As Integer = 0 To 9
  // Do something
  MsgBox(myVariable.ToText)
Next
myVariable = 10 // compile error here</pre>
<p><em>(Thanks to <a href="mailto:robin@xojo.com">Robin Lauryssen-Mitchell</a> for this tip.)</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Code Editor Fonts</title>
		<link>https://blog.xojo.com/2013/11/26/code-editor-fonts/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Tue, 26 Nov 2013 00:00:00 +0000</pubDate>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Code Editor]]></category>
		<category><![CDATA[Font]]></category>
		<guid isPermaLink="false">http://blogtemp.xojo.com/2013/11/26/code-editor-fonts/</guid>

					<description><![CDATA[Code Editor Fonts]]></description>
										<content:encoded><![CDATA[<p>There are a wide variety of fonts that work great with the Xojo code editor. All are much better choices than using System or Courier! For best results, you are going to want to use a monospaced font. Read on for some of my favorites.</p>
<p><span id="more-73"></span><br />
<strong>Monaco</strong><br />
This font is installed by default on MacOS. It is big and very easy to read.<br />
<a href="http://www.gringod.com/2006/11/01/new-version-of-monaco-font/">http://www.gringod.com/2006/11/01/new-version-of-monaco-font/</a></p>
<p><strong>Menlo</strong><br />
Also included by default on MacOS.<br />
<a href="http://en.wikipedia.org/wiki/Menlo_(typeface)">http://en.wikipedia.org/wiki/Menlo_(typeface)</a></p>
<p><strong>Source Code Pro</strong><br />
Adobe just released this font in 2012 or so and I really like it. I have been using as my default font since I first found out about it. The screen shot below shows how it looks in Xojo on Mac.<br />
<img loading="lazy" decoding="async" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="https://blog.xojo.com/wp-content/uploads/2013/11/sourcecodepro-thumb-400x291-213.pngt1466486449161ampwidth400ampheight291" sizes="auto, (max-width: 400px) 100vw, 400px" alt="SourceCodePro.png" width="400" height="291" /><br />
<a href="https://github.com/adobe-fonts/source-code-pro">https://github.com/adobe-fonts/source-code-pro</a></p>
<p><strong>Inconsolata</strong><br />
This is what I used until I switched to Source Code Pro. It is a little smaller than other fonts at the same point size.<br />
<a href="http://levien.com/type/myfonts/inconsolata.html">http://levien.com/type/myfonts/inconsolata.html</a></p>
<p><strong style="line-height: 1.62;">ProFont</strong><br />
This is the first alternative font I used. I think the others mentioned here are nicer.<br />
<a href="http://www.tobias-jung.de/seekingprofont/">http://www.tobias-jung.de/seekingprofont/</a></p>
<p><strong>What do you use?</strong><br />
There are dozens of other great programming fonts. What is your favorite? Let us know on Twitter (<a href="https://twitter.com/xojo">@xojo</a>).<br />
<em>Note: A version of this post was previously published in Oct 2012.</em></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
