<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
    <head>  
        <title>NetBeans IDE - Editing and Refactoring</title>
        <meta http-equiv="content-language" content="en">
        <meta name="description" content="DESCRIPTION HERE">
        <link rel="stylesheet" type="text/css" href="../../features.css">
        <link rel="stylesheet" type="text/css" href="/images_www/js/colorbox/colorbox.css">
    </head>
    <body>
        <script type="text/javascript" src="/images_www/js/colorbox/jquery.colorbox-min.js"></script>

        <script type="text/javascript">
            $(document).ready(function() {
                $('a.cbox').colorbox({rel: 'cbox', opacity: 0.7});
            });
        </script>
        <div style="margin:10px 20px 0px 0px;">
            <h1>Editing and Refactoring</h1>
            <p class="xintro">
                <a href="../../images_www/v7/3/features/ide-editor-full.png"><img
                        src="../../images_www/v7/3/features/ide-editor-cut.png"
                        alt="Java editor features in NetBeans IDE"><br>
                    <span class="font-11">Click image for fullscreen preview</span></a> 
            </p>
            <p class="intro">
                The language-aware NetBeans editor detects errors while
                you type and assists you with documentation popups and smart code
                completion&#8212;all with the speed and simplicity of your favorite lightweight text
                editor.
            </p>
            <div class="line">&nbsp;</div>

            <!-- right text section start -->
            <a name="o1"></a>
            <span class="overview-left" id="im2"><a href="../../images_www/v7/3/features/ide-editor-java8-full.png" class="cbox" title="Java SE 8"><img src="../../images_www/v7/3/features/ide-editor-java8-cut.png" width="320" alt="Java SE 8" /></a></span>
            <h2>Java 8 Language Tools</h2>
            <p>NetBeans IDE is the official IDE for Java 8. With its editors, code
                 analyzers, and converters, you can quickly and smoothly upgrade
                 your applications to use new Java 8 language constructs, such
                 as lambdas, functional operations, and method references.
            </p>
            <p>Batch analyzers and converters are provided to search through
             multiple applications at the same time, matching patterns for
             conversion to new Java 8 language constructs.</p>
            <p>
                <a href="https://netbeans.org/kb/docs/java/javase-jdk8.html" class="arr-link">
                    Overview of JDK 8 Support in NetBeans IDE</a><br/>
                    <a href="https://www.youtube.com/watch?v=N8HsVgUDCn8" class="arr-link">
                    Video: Smart Migration to JDK 8</a></p>
            <div class="line">&nbsp;</div>
            <!-- right text section end -->

            <!-- left text section start -->
            <a name="o2"></a>
            <span id="im1" class="overview-right"><a href="../../images_www/v7/3/features/ide-editor-templates-full.png" class="cbox" title="Templates and Sample Applications"><img src="../../images_www/v7/3/features/ide-editor-templates-cut.png" alt=""  /></a></span>
            <h2>Editors and File Templates</h2>
            <p> The editor in NetBeans IDE is much more than a text editor. The NetBeans editor 
                indents lines, matches words and brackets, and highlights source code 
                syntactically and semantically.</p>
            <p>The editor supports several languages 
                including Java, C/C++, XML, HTML, PHP, Groovy, CSS, and JavaScript. 
                It can be extended to support other languages.</p>
            <p>The
                IDE provides file templates for each
                of the technologies it supports, such as Java file templates,
                HTML file templates, and JavaScript file templates.</p>
            <p><a href="../../kb/index.html" class="arr-link">
                    NetBeans Technology Learning Trails</a>
            <br/><a href="../../kb/docs/java/editor-codereference.html" class="arr-link">
                    Code Assistance in the NetBeans IDE Java Editor</a></p>
            <div class="line">&nbsp;</div>
            <!-- left text section end -->


            <table>
                <tr>
                    <td class="valign-top"><h2>Static Analysis</h2></td>
                    <!--<td></td>-->
                    <td class="valign-top"><h2>Live Parsing</h2></td>
                    <!--<td></td>-->
                    <td class="valign-top"><h2>Rich Refactoring</h2></td>
                </tr>
                <tr>
                    <td class="valign-top" style="width:33%;padding-right:10px;"> 
                        <p> 
                            <span class="overview-centre" id="im8"><img
                                    src="../../images_www/v7/3/features/ide-editor-findbugs.png" class="box "
                                    alt="FindBugs"/></span><br/> 
                            The cost of buggy code increases the longer it remains unfixed.
                            The IDE gives you static code analysis tools, in particular, 
                            integration with the popular open source Java FindBugs tool.
                            <br/><br/>
                        </p>
                    </td>
                    <!--<td>&nbsp;</td>-->
                    <td class="valign-top"  style="width:33%;padding-right:10px;">
                        <p> 
                            <span class="overview-centre" id="im8"><img
                                    src="../../images_www/v7/3/features/ide-editor-parsing.png" class="box "
                                    alt="Parsing"/></span><br/> 
                            The IDE parses the source code live while you type. The
                            editor marks errors, highlights occurrences,
                            shows compiler hints, quick fixes, 
                            warnings, and language documentation. <br/><br/>
                        </p>
                    </td>
                    <!--<td>&nbsp;&nbsp;&nbsp;</td>-->
                    <td class="valign-top"  style="width:33%">
                        <p>
                            <span class="overview-centre" id="im8"><img
                                    src="../../images_www/v7/3/features/ide-editor-refactoring.png" class="box "
                                    alt="Refactoring"/></span><br/> 
                            The IDE's refactoring tools allow you to restructure code without breaking it. 
                            The Inspect & Transform tool enables you to run powerful inspections 
                            across your codebase, while automatically fixing your code.
                            <br/><br/>

                        </p>
                    </td>
                </tr>
                <tr>
                    <td class="valign-top"><h2>Code Completion</h2></td>
                    <!--<td></td>-->
                    <td class="valign-top"><h2>Intelligent Navigation</h2></td>
                    <!--<td></td>-->
                    <td class="valign-top"><h2>Quick Insertion</h2></td>
                </tr>
                <tr>
                    <td class="valign-top" style="width:33%;padding-right:10px;"> 
                        <p>      
                            <span class="overview-centre" id="im8"><img
                                    src="../../images_www/v7/3/features/ide-editor-completion.png" class="box "
                                    alt="Completion"/></span><br/> 
                            The editor provides automatic code completion in several languages, 
                            including Java, C/C++, PHP, Groovy, XML, HTML, CSS, and JavaScript.
                        </p>
                    </td>
                    <!--<td>&nbsp;</td>-->
                    <td class="valign-top"  style="width:33%;padding-right:10px;">
                        <p>
                            <span class="overview-centre" id="im8"><img
                                    src="../../images_www/v7/3/features/ide-editor-navigate.png" class="box "
                                    alt="Navigation"/></span><br/> 
                            Navigate to any file, type, or symbol using standard text, camel 
                            case format, or wild cards, and do case sensitive 
                            searches throughout your codebase.
                        </p>
                    </td>
                    <!--<td>&nbsp;&nbsp;&nbsp;</td>-->
                    <td class="valign-top"  style="width:33%">
                        <p>
                            <span class="overview-centre" id="im8"><img
                                    src="../../images_www/v7/3/features/ide-editor-codegenerator.png" class="box "
                                    alt="Insertion"/></span><br/> 
                            The editor can generate common code snippets for you within the editor.
                            You can define code templates for common pieces of code and
                            add record macros as you type. 
                            <br/><br/>

                        </p>
                    </td>
                </tr>
                <tr>
                    <td class="valign-top"><h2>Smart Suggestions</h2></td>
                    <!--<td></td>-->
                    <td class="valign-top"><h2>Hierarchy Inspection</h2></td>
                    <!--<td></td>-->
                    <td class="valign-top"><h2>Easy Customization</h2></td>
                </tr>
                <tr>
                    <td class="valign-top" style="width:33%;padding-right:10px;"> 
                        <p>       
                            <span class="overview-centre" id="im8"><img
                                    src="../../images_www/v7/3/features/ide-editor-hints.png" class="box "
                                    alt="Suggestion"/></span><br/> 
                            The IDE performs source code analysis and offers an extensive set of 
                            hints to quickly fix or enhance your code.
                        </p>
                    </td>
                    <!--<td>&nbsp;</td>-->
                    <td class="valign-top"  style="width:33%;padding-right:10px;">
                        <p>
                            <span class="overview-centre" id="im8"><img
                                    src="../../images_www/v7/3/features/ide-editor-hierarchy.png" class="box "
                                    alt="Inspection"/></span><br/> 
                            Inspect the members and supertype or subtype hierarchies of any file in the Navigator window
                            and Hierarchy window,
                            which provide filters to control the level of detail displayed. 
                        </p>
                    </td>
                    <!--<td>&nbsp;&nbsp;&nbsp;</td>-->
                    <td class="valign-top"  style="width:33%">
                        <p>
                            <span class="overview-centre" id="im8"><img
                                    src="../../images_www/v7/3/features/ide-editor-customizations.png" class="box "
                                    alt="Customization"/></span><br/>
                            The behavior and display of the languages in the editor can be customized, including
                            its code completion, documentation view, keyboard shortcuts, 
                            fonts, and colors.
                            <br/><br/>

                        </p>
                    </td>
                </tr>
            </table>
            <h2>See Also</h2>
            <ul class="bigger">
                <li><a href="/community/releases/81/index.html">NetBeans IDE 8.1  Release Page</a> for a list of specific features in the latest stable release.</li>
                <li><a href="../../kb/trails/java-se.html">General Java Development Learning Trail</a> for tutorials that will help you get started.</li>
            </ul>

        </div>
    </body>
</html>
