Proposal for a Function Centric View

Describe your feature request
Requesting a view/appearance that is an editable call graph. Along with the built-in AI aspect, A modernised, never seen before experience could be the USP of Cursor.

What problem(s) would this feature solve?
Code is traditionally written in files (in a “linear” way) because that’s how compilers require it.

However, organizing code into files can often lead to a compromise between what the compiler needs and what developers can efficiently work with. As a result, developers end up creating a plethora of files arranged into modules that they think are the best way to organize them.

This approach can make it difficult to find what is needed within an open-source project or legacy codebase, and understanding the interconnections between various pieces of code can be a tedious and time-consuming process.

Visualizing the project in an intuitive manner, such as through a flowchart of procedures, can significantly help developers. Such a representation allows them to easily zoom in on the details they need, without getting lost in the overwhelming amount of code presented in a traditional file-based view.

Explain what you were trying to do when you came across the problem leading to this feature request
The way we read code is much different from the way we write code. So here is why and how our text editor or IDE should help us out.

To illustrate this point, let’s consider a simple CRUD application implemented in Java Spring Boot.

A Java Spring Boot application is typically structured into classes such as:

  • Controllers: handle incoming requests and route them to the appropriate service.
  • Services: implement the business logic of the application.
  • Data Access Objects (DAOs): responsible for interacting with the database.

We can say that code is written “horizontally”.

However, we tend to read code “vertically” — one endpoint at a time much like the sequence in which it would run. We pick an endpoint and we start to read the controller, then the service, and finally the repository.

By making it easier to read code vertically, we can help developers cut the clutter and focus on the problem at hand.

1 Like

I asked our design team. They were thinking you were thinking something like https://natto.dev/ ?

A modernised, never seen before experience could be the USP of Cursor.

What do you mean by Cursor?

1 Like

Thanks for considering the proposal. The link you shared also looks pretty cool.

I am sorry about the Cursor bit, please ignore that.