Feedback
TWS Blog

Meet The Welkin Suite Spire R6 with Code Assistance improvements

The Welkin Suite
Release
Posted by username
Dec 23, 2016 1055

The Welkin Suite team has a sweet Christmas present for you. Please meet Spire R6, which is dedicated to improving the Code Assistance functionality for Apex. Now code completion suggestions have become more accurate and fluent. This way, your coding performance can be even higher, and the IDE will make your working process easier and more pleasant.

The updated version of the IDE - The Welkin Suite Spire R6

All the Code Assitance changes in details and, of course, several other ones are described below. Please enjoy your reading, and hurry to give them a try inside The Welkin Suite IDE.

Code Completion changes

First of all, we would like to tell you that Code Completion has begun to work better due to the context with more precision. This means that as of now, the suggestions in it are more reliable and accurate regarding the position in a class. This is achieved owing to the following changes:

  • We have added the basic support for Code Completion for SOQL queries in your Apex classes. When you start typing it, for example, enter the '[' symbol, and the completions related to the context of a query will appear in suggestions. The most common keywords are added for these cases, for example, SELECT, FROM, ORDER BY, etc.
  • Additionally, the standard keywords are now better supported as well - this applies to DML operations, 'null', 'this', 'true', 'false', and others will appear there where you need them.
  • The suggestion of the optional modifiers and keywords are improved, so now the Code Completion list contains only necessary and possible ones in the current context items.
  • Beginning from the Spire R6 version of the IDE, the search of the correct suggestion for each case looks on upper- and lowercases in the Code Completion list. In other words, if there are two suggestions with the same text, that one which coincides with the just entered text in your code and its register will be highlighted.
  • In addition, we have improved highlighting of the most suitable item in the Code Completion list and its inserting to the code in general. Previously, there were cases when TWS inserted the item that was not highlighted item from the list to your code.
  • The Code Completion for static members and objects in your class is separated, and items in the completion list for each of them appear in the appropriate context only. This means that you won't get the static members in suggestions, for instance variables, as well as you won't get instance members in suggestions for a static class. 
  • In addition to all these improvements, we have solved the issue related to the missed members in some base objects, and rare cases of the incorrect search in hierarchical members is fixed as well.  

All these changes affect the content of the Code Completion suggestions list, and related options like search, inserting, highlighting. The whole editing process is based on the results of the work of TWS parser. In th future, we plan to continue the work on improving code analysis, which is the groundwork of the Code Assistance functionality.

Additional Code Assistance changes

Code Completion is one of the most important parts of the Code Assistance functionality. However, there are other options and possibilities to improve your working process inside The Welkin Suite IDE. Here you can read what we have changed, improved, and fixed in Spire R6:

  • This time we have increased the performance of our code analysis while coding, so the speed of editing the classes should become higher. Now there won't be any delays in it in even in very large files.
  • One more performance update is related to code re-parsing. This is the background process and, as we have mentioned above, the result of this work is fundamental for all other Code Assistance features. As a result, the changes in your files are analyzed much faster, and you get the additional options and information immediately.  
  • The great job was done in terms of resolving the issue with the Code Assistance functionality disappearing in valid classes after editing. This was caused by some specific code blocks, and led to the failure of our Apex parser. This triggered the absent Code Outlining, unit tests detection, work of the 'Go to definition' option, etc. Our developers have solved all the known reasons behind this issue. If for some reason, you are be faced with this further, please contact us.
  • The experimental feature that allows to show syntax errors in your code become more informative, and now, if you use it, you will get the full error description in the tooltip near the code that contains the mistake. To enable this option, please follow the next steps: Main Menu -> Tools -> Options -> Text Editor -> Code Assistance -> Other Settings section -> (Experimental) Show Syntax Errors.
  • Our developers have worked on the Code Map functionality in Apex classes. There were cases when the list in it was duplicated after some changes, however reopening a file helped to resolve the issue. From now on, such cases should not appear anymore. One more issue was related to updating the Code Map after editing, or adding new elements to your class. Both of them are fixed as well. 
  • As a side note, the content of the Code Map is collapsed by default in Spire R6. This is the temporary workaround till we are investigating TWS freezing when very large files are re-parsed. You can open it when necessary.
  • Also, the Code Assistance functionality is used for the creation of the list of unit tests in the 'Run tests' dialog, in the case when Salesforce doesn't return this list to the IDE when refreshing it. Previously ,there were cases when the list wasn't displayed due to the failed gathering of the information about test methods locally. We have solved this, and now you will always be able to get the list of all unit tests in the 'Run Tests' window, and run them.

Other changes

In The Welkin Suite Spire R6, we paid our attention to other functionality of our IDE as well.

Since the set of the debug levels for logs on Salesforce was changed, our developers have made appropriate changes in the settings in TWS. Now when you use the 'Configure Debug Log Levels' option, you will be able to select the same levels that are available for you on the Org. In addition, the new button 'Set Retrospective Debugger Log Levels' is added, so there is no need to change the level for each category step-by-step to configure them for debugging - you can modify them in one click, and continue your working process.

Ability to Set Retrospective Debugger Log Levels in one click

Additionally, when you start debugging from a log file, and the log levels are set lower than required ones, you will get the appropriate message with the list of the required debug log levels:

Required Debug Log Levels in the error description

We have made another update related to the Apex Debugger. Previously, when you were debugging Apex controllers, you could be redirected to a Visualforce page file instead of the correct Apex class file. Now this issue is resolved, and you can safely debug Apex controllers.

The next set of fixes is dedicated to filtering in the 'Run Tests' dialog. When you have used the filter to get only some of your tests, and then enabled the checkbox next to the project with the selected items and run tests, all of the tests from your project were run, not only the selected ones. We have solved this case, and this will now work correctly. The next update has been made for the case when you are filtering test list from an Organization with a lot of unit tests - in such cases, there was a chance that TWS could freeze.

Moreover, filtering in the 'Project Metadata Components' wizard could previously cause the error 'We could not get metadata. Please retry again later.'. The logic of filtering was re-implemented, and all the necessary metadata is processed correctly.

We have improved the project structure synchronization functionality. This mechanism looks the same way from your side, however, some internal changes will help you avoid potential issues. The same functionality was implemented in the Beta 5 version of The Welkin Suite for Mac, so now you can share your project structure between TWS project on both platforms. 

When you've used OAuth authentication, you probably could have been faced with the issue with the lack of an option to re-authorise to an opened project that has the expired credentials right after TWS was started. The reason for the issue was as follows: when the license identifying window was closed, the window for the repeated authentication was closed as well. Now these windows appear separately, and one has no effect on another. In addition, an issue appeared with hotkeys and functional buttons stopping to work on the project that was created using the OAuth authentication. We have found the reason for this, and fixed it.

At the end, maybe one of the most awaited changes is done for the 'Format on paste' option for Visualforce and Lightning Components. When you work on a file in the built-in HTML editor, and paste some text into your code, the uppercase was changed to lowercase. This was especially important for Lightning development, which could be failed to build because Aura framework is case-sensitive. Currently, we have disabled this option by default.

Full list of changes:

Improvements

  • Improved the list of Apex Code Completion suggestions, taking into account the current context in your code
  • Increased the speed of typing and editing Apex classes 
  • Increased the speed of Apex Code analysis
  • Changed the syntax error description to make it more informative
  • Added the basic support for SOQL queries in the Code Completion functionality
  • Added the SOQL keywords to the Code Completion suggestions
  • Improved the support for keywords suggestions in the Code Completion list
  • Improved the support for optional modifiers (keywords)
  • Improved the highlighting of the most suitable item in the Code Completion list taking in account the register
  • Removed static members from suggestions for objects in the Code Completion list
  • Implemented showing only static members in the list of suggestion in the Code Completion for class
  • Added the button to set the debug log levels suitable for Apex Retrospective Debugger
  • Changed the set of debug levels for logs taking into account changes in these settings on Salesforce

Fixes

  • Fixed the issue when the Code Assistance functionality disappears in a class after some changes
  • Fixed the issue when the item that is not highlighted in the Code Completion suggestion was inserted into the code
  • Fixed the issue related to missed/incorrect suggestions of methods in the Code Completion list
  • Fixed the issue related to missed members in base class objects in the Code Completion list
  • Fixed the issue when the list in Code Map was duplicated
  • Fixed rare cases of the failed updating of Code Map
  • Fixed failed retrieval of the local test classes and methods for the 'Run tests' dialog
  • Fixed the issue when all tests were run instead of the filtered ones when enabling the checkbox for a project in the 'Run tests' dialog
  • Fixed the issue when the error appeared after using the filter in the 'Project Metadata Components' wizard
  • Fixed the potential reason for freezing the 'Run tests' dialog when filtering tests from a large Org
  • Fixed the incorrect redirection for debugging from a file to a Visualforce page instead of an Apex class file
  • Fixed the issue when the hotkeys and functional buttons stopped their work for a loaded project right after TWS starting
  • Fixed the issue when OAuth re-authentication window disappeared right after TWS license identifying window was closed
  • Changed the default value for the 'Format on paste' option for HTML editor to 'false' to avoid changing the register on text pasting for Visualforce and Lightning Components files
  • Changed the file creation process to avoid potential issues
  • Changed the project structure synchronization process to avoid potential issues

Your comment may be the first

    Please log in to post a comment