SharpDevelop Community

Get your problems solved!
Welcome to SharpDevelop Community Sign in | Join | Help
in Search

How does "Intellisense" and refactoring work?

Last post 04-19-2008 10:03 PM by Qwertie. 0 replies.
Page 1 of 1 (1 items)
Sort Posts: Previous Next
  • 04-19-2008 10:03 PM

    How does "Intellisense" and refactoring work?

    Is there a document out there that explains how SharpDevelop's intellisense (or whatever it is called in the open-source world) and refactoring abilities work?

    I ask because I want to make a compiler targetting SharpDevelop and I intend to support refactoring and real-time determination of type information, and I hope to design the necessary functionality right into the compiler. I hope to figure out a design that is so robust and reliable that it will not be necessary to build the project from scratch, instead code generation can proceed from the AST which was already built for intellisense.

    One thing that puzzles me is how to incrementally update an AST from user input so that the whole program (and hopefully not even the current source file) need not be reparsed for each character typed. Another puzzle is when a refactoring operation occurs, how can I detect when a naming conflict occurs? For example:

    class A { static public void f() {} }
    class Program {
        int B;
        void Main() { A.f(); }
    }

    If you use the rename refactoring to change B to A, VS detects that A.f() would refer to the non-existent Program.A.f() and warns you of the problem. I don't know if #D can do this but I'd like some tips on how to do it in my implementation.

Page 1 of 1 (1 items)
Powered by Community Server (Commercial Edition), by Telligent Systems
Don't contact us via this (fleischfalle@alphasierrapapa.com) email address.