Cursor Feature Deep Dive

Are you interested in knowing more about how certain features in Cursor work?

The ‘behind-the-scenes’ concepts and workflows involved?

I know that I am, so I thought I would start this topic as a way of finding out what other users are interested in.

Which features would you like to have a better understanding of?

To spur your ideas, topics previously mentioned on the forum include:

  • Codebase indexing and the vector embedding process

  • LLM selection and Cursor’s custom models

  • Error and log checking

  • Custom Docs and crawling

  • Using your own API keys

  • Privacy mechanisms

  • Business plan offerings

  • Checking for known issues and issue status

  • Best practices

  • Chat context management in regard to @ Symbols, pasted code and ‘current file’ scenarios

  • Distinguishing use cases for Ctrl + L, Ctrl + K and Ctrl + I (Composer)

  • Distinguishing between Cursor and VS Code features

  • Codebase searching (embedding and reranker options)

For reference, the Cursor Docs are now on GitHub, so feel free to use them as a starting ground from which to explore:

https://docs.cursor.com
https://github.com/getcursor/docs

Please remember to follow the forum’s community guidelines and keep comments constructive and civil:

https://forum.cursor.com/faq

4 Likes

The main issue I face when using cursor and LLMs in general is that as my project has gotten more complex, the effort it takes to craft a prompt that has sufficient context and explanation for claude/gpt4 to properly implement whatever change/refactoring I want is so extensive that I often just do it myself manually. For writing code from scratch it’s still fine but refactoring has become a pain. Not really sure if there’s a solution to this.

5 Likes

I think it is similar with human developers by themselves. The more complex the project becomes, the more complex its maintenance and debugging. We should expect the same with AI. The good news, I think, is that with new developing of AI models and systems interoperability (with AI), the easier will be for AI assistants to interact with our huge codebases.

2 Likes

The only solution I’ve found is implementing rigorous modularity. Divide up code into as many functions as possible, and keep classes in separate files. Cursor indexes your files based on functions, so you can make more targeted changes to your code if you isolate it as a function. And Cursor still struggles to grok any file longer than about 400-600 lines, so that’s when I try to split them up.

The only thing I want to know is why sometimes the changes are automatically applied for me, and at other times Cursor makes no attempt and I have to click ‘apply changes to entire file’. I loved the automatic applied changes feature and it seems to have been curtailed in the past week or two.