Skip to content
SciTools Blog
Menu
  • Home
  • Blog
  • Support
  • Contact
  • Login
  • Pricing
  • Free Trial
Menu

Feasting on My Own Dog Food

Posted on January 3, 2024

TLDR: Understand complements my primary editor, VS Code, rather than replacing it. It’s an essential part of my workflow for personal projects, especially when it comes to easily visualizing the underlying types of variables and functions. It’s the best of both worlds!

Even though I work on Understand, right now, my favorite program for editing source code is the popular editor Visual Studio Code. It provides a lot of useful editing capabilities and extensibility – I know it well enough that I have created five VS Code extensions. However, for easily learning about my code, Understand is my preferred platform, even with my personal projects.

I love and hate the C language. I love it enough to make personal projects with it—I’m currently making a cross-platform graphics library. Right now, my library makes it easy to import any modern OpenGL functions, create a window of any color and style, and, finally, call the OpenGL functions to draw on the window. I plan on supporting Windows and Linux, but I’m working on Windows first. (I would also like to support Mac if I could ever legally run it on my PC.)

The most frequent kind of mystery I am running into with this codebase is figuring out what the types are. Why am I having problems with the types? The win32 API documentation is great for describing functions such as DefWindowProcA but not as good at showing the underlying type of its parameters or return values. This particular function returns an LRESULT, but what exactly is that type? Look up “win32 LRESULT” to find that an LRESULT is a LONG_PTR. Okay, but what is a LONG_PTR? That same page says that it is a 64-bit integer (__int64), which is a just a long long on my platform.

That was a lot of detective work. In less time and effort, I can create an Understand project, open DefWindowProcA in the API Info interactive report, and look at the freetext called UnderlyingType, which says long long.

This can be made even easier by adding a new interactive report that shows the type and underlying type. This simplifies the view and reduces the amount of clicks.

This easily accessed information is super useful to me, and I rely on it even though Understand is not my primary code editor.


In conclusion, while I predominantly use Visual Studio Code for its editing prowess, Understand distinctly shines in demystifying the complexities of my C projects. Its ability to swiftly reveal the underlying types in code saves me significant time and effort. The prospect of further streamlining this process with a new interactive report feature only heightens its utility. This powerful synergy between Understand and my primary editor, VS Code, underscores the strength of using the right tools for the right tasks, making my work in the office and at home more efficient and enjoyable.

Learn more about Understand's Features

  • Dependency Graph
    View Dependency Graphs
  • Comply with Standards
  • View Useful Metrics
  • Team Annotations
  • Browse Depenedencies
  • Edit and Refactor

Related

Leave a Reply Cancel reply

You must be logged in to post a comment.

  • API
  • Architectures
  • Business
  • Code Comparison
  • Code Comprehension
  • Code Navigation
  • Code Visualization
  • Coding Standards
  • Dependencies
  • Developer Notes
  • DevOps
  • Getting Started
  • Legacy Code
  • Licensing
  • Metrics
  • Platform
  • Plugins
  • Power User Tips
  • Programming Practices
  • Uncategorized
  • Useful Scripts
  • User Stories
  • May 2025
  • January 2025
  • December 2024
  • November 2024
  • August 2024
  • June 2024
  • May 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • June 2023
  • April 2023
  • January 2023
  • December 2022
  • November 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021

©2025 SciTools Blog | Design: Newspaperly WordPress Theme