Click here to Skip to main content
15,889,034 members
Articles / Desktop Programming / Windows Forms

Storm - the world's best IDE framework for .NET

Rate me:
Please Sign up or sign in to vote.
4.96/5 (82 votes)
4 Feb 2010LGPL311 min read 275.5K   6.5K   340  
Create fast, flexible, and extensible IDE applications easily with Storm - it takes nearly no code at all!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Storm Documentation | Controls | TextEditor</title>
    <link rel="stylesheet" type="text/css" href="../style/codesheet.css" />
</head>
<body>
    <h1>TextEditor Control</h1>
    <p>The TextEditor Control is designed to:</p>
    <ul>
        <li>Provide very efficient and extensible syntax highlighting;</li>
        <li>Make your users able to use breakpoints, bookmarks, code folding, line number, smart indentation, etc. when they use your application;</li>
        <li>Give you more time to do stuff that actually needs focusing, instead of recreating a text editor all over again.</li>
    </ul>
    
    <p>Library dependencies:</p>
    <ul>
        <li>None</li>
    </ul>
    
    <h2>How to use the TextEditor Control?</h2>
    <p>Using the TextEditor Control is very, very simple - add a reference to the Storm.TextEditor library in your toolbox, and drag-drop a
TextEditor onto your application. Then you can set it up in the designer via its properties. If the AutomaticLanguageDetection property is set
to false, you can set the language that the TextEditor should highlight via its CurrentLanguage property. If AutomaticLanguageDetection is set
to true, the TextEditor will automatically figure out what language it should highlight when you call its Open method.</p>
    
    <p>The TextEditor has functions for opening, saving, cut, copy, paste, undo, redo, etc., so you can use those when you need to.</p>
    
    <h2>How to add CodeCompletion functionality?</h2>
    <p>This has only become simpler! You simply create a new class, make it inherit the ICompletionDataProvider and then implement all the 
necessary methods and properties. The names on the methods and properties should be easy enough to understand and make you know what to do.</p>
    
    <h2>How to create a new language definition?</h2>
    <p>The structure of language definition files is simple and pretty straightforward - if you look at one of the existing ones I'm sure you'll
grasp the concept very quickly. The tricky part can be the inheriting part - it can probably lead to the TextEditor not highlighting as you want
it if you don't know how to use it correctly. Therefore I advise you to check for own mistakes before reporting bugs that have relevance to this
problem. A good example of how inheritance should be done and can be manipulated are the Jass/vJass/Zinc languages. vJass inherits Jass, adding
new functionality to Jass, and Zinc inherits vJass, however since it is a more C++ like language, it removes the Scopes from vJass and Jass.</p>

    <p>Happy language creation!</p>
    
    <a href="../libs.htm">Back</a>
</body>
</html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU Lesser General Public License (LGPLv3)



Comments and Discussions