Ticket T668650
Visible to All Users

CodeRush - Code Issues Panel (Line Number Navigation)

created 7 years ago

Hello there,

I've recently been using the Code Issues page to "cleanup" our code from various issues, and I'm facing a rather frustrating bug. When clicking on the individual items, it is not always correctly navigating me to the correct line number. I'm not quite sure what the cause of this is, but this only seems to happen once I start adding code to the file in question and continue downwards.

Show previous comments (2)
DevExpress Support Team 7 years ago

    Mark, to process your recent post more efficiently, I created a separate ticket on your behalf (T668862: No way to sort issues by line number order). It has been placed in our processing queue and will be answered shortly.

      Igor, many thanks for your follow up in regards to my reported issue. I can confirm that we are using the First Analysis Mode due to the Solution Size. In previous evaluations we made of CodeRush we discovered the "Static Analysis" to be too resource intensive during normal usage of Visual Studio.

      I also fully appreciate that CodeRush would require modifications to subscribe to file modification events and provide recalculation(s) once such an event occurs. However, the changes I have been making on whole, are adding code to the end of the affected line. I would of thought, with the fact that the list contains both a line number and character number, that in this instance it would still navigate as expected?

      And thank you for raising a separate ticket in regards to the ordering of the reported "Code Issues".

      DevExpress Support Team 7 years ago

        Hi Mark,
        You're always welcome.
        Thank you for the confirmation. Answering your question, as you may know, CodeRush is built on top of the .NET Compiler Platform ("Roslyn") integrated in Visual Studio, which includes a mechanism for tracking nodes - it allows a developer to annotate a concrete syntax node in the syntax tree to further find it (e.g., in cases when you need to modify the tree and then find a node corresponding to a node from an old tree). Simply speaking, the final algorithm will work through the described mechanism - CodeRush will detect if there are previously found issues in a currently active file and if so, it will use Roslyn to annotate nodes which represent statements that require a developer's attention and will subscribe to the Visual Studio file modification event. Once such an event fires, CodeRush will traverse through the syntax tree of a currently active file, find previously annotated nodes, and renew their positions in the Code Issues window's grid. The node position consists of two values as you mentioned - the line number and the character number, so the answer is yes, navigation will work as expected. Note please that the final algorithm and implementation will be much more complex.

        Also, I want to point out that after having a discussion with the team, we decided to consider implementing such a functionality in the nearest planning.
        Stay tuned for further updates.

        Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

        Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.