CINXE.COM
Starting To Browse
<!doctype html> <html> <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Starting To Browse</title> <link media="all" rel="stylesheet" href="/theme/responsive-eiffel-org/css/all.css" /> <link rel="shortcut icon" href="https://www.eiffel.org/favicon.ico"/> <link href="https://fonts.googleapis.com/css?family=Inconsolata|Open+Sans:400,700|Titillium+Web" rel="stylesheet" type="text/css" /> <!--[if IE]><script src="/theme/responsive-eiffel-org/js/ie.js"></script><![endif]--> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <link rel="stylesheet" href="/module/auth/files/css/auth.css" type="text/css"/> <link rel="stylesheet" href="/module/node/files/css/node.css" type="text/css"/> <link rel="stylesheet" href="/module/blog/files/css/blog.css" type="text/css"/> <link rel="stylesheet" href="/module/comments/files/css/comments.css" type="text/css"/> <link rel="stylesheet" href="/module/wikitext/files/css/wikitext.css" type="text/css"/> <link rel="stylesheet" href="/module/taxonomy/files/css/taxonomy.css" type="text/css"/> <style> table.recent-changes th { padding: 3px; } table.recent-changes td { padding: 3px; border: dotted 1px #ddd; } table.recent-changes td.date { padding-left: 15px; } table.recent-changes td.title { font-weight: bold; } </style> <link rel="stylesheet" href="/module/feed_aggregator/files/css/feed_aggregator.css" type="text/css"/> <link rel="profile" href="http://gmpg.org/xfn/11" /> <meta property="url" content="https://www.eiffel.org/doc/eiffelstudio/Starting_To_Browse" /> <meta property="og:type" content="article" /> <meta property="article:published_time" content="2019-09-11" /> <meta property="article:modified_time" content="2019-09-11" /> <meta property="og:image" content="https://www.eiffel.org/favicon.ico" /> <link rel='canonical' href='https://www.eiffel.org/doc/eiffelstudio/Starting_To_Browse' /> <link rel='shortlink' href='https://www.eiffel.org/doc/eiffelstudio/Starting_To_Browse' /> <script type="text/javascript" src="/module/wdocs/files/js/wdocs.js"></script> <link rel="stylesheet" href="/module/wdocs/files/css/wdocs.css" type="text/css"/> </head> <body class="page"> <div id="page"> <!-- Header --> <header id="header" class="grid-3"> <div class="logo"><a href="https://www.eiffel.org/"><img src="/theme/responsive-eiffel-org/images/logo.png" width="226" height="60" alt="Eiffel"></a></div> <nav id="nav"> <ul> <li><a href="https://www.eiffel.org/welcome">welcome</a></li> <li><a href="https://www.eiffel.org/documentation">documentation</a></li> <li><a href="https://www.eiffel.org/resources">resources</a></li> <li><a href="https://www.eiffel.org/contribute">contribute</a></li> <li><a href="https://www.eiffel.org/blogs">blogs</a></li> <li><a href="https://www.eiffel.org/downloads">download</a></li> </ul> </nav> <nav class="add-links"> <ul> <li> <a href="/account/roc-login?destination=doc%2Feiffelstudio%2FStarting_To_Browse">Sign in</a> </li> <li class="search"> <div class="block" id="block-gcse_search_form"><div class="inside"><form class="search-form" method="GET" action="https://www.eiffel.org/gcse20"> <input type="image" alt="Search" class="btn" src="/theme/responsive-eiffel-org/images/ico-search.png"/> <input type="text" name="q" size="25" maxlength="255" value="" /> </form> </div></div> </li> </ul> </nav> </header> <!-- Main part --> <main id="main"> <a id="main-content"><!-- Internal anchor to top content --></a> <section id="content" class=" doc" itemtype="http://schema.org/Article" itemscope=""> <div class="container grid has-gutter"> <aside id="sidebar"> <div class="holder"><div class="block" id="block-wdocs-tree"><div class="inside"><div id="wdocs-tree" class="menu"><ul class="vertical" > <li class="expandable "><a href="/doc/eiffel/Eiffel">Eiffel</a><ul> <li class="expandable "><a href="/doc/eiffel/Eiffel_Overview">Overview</a><ul> <li><a href="/doc/eiffel/Two-Minute_fact_sheet">Two-Minute fact sheet</a></li><li><a href="/doc/eiffel/Your_next_project_in_Eiffel">Your next project in Eiffel</a></li><li><a href="/doc/eiffel/Learning_Eiffel">Learning Eiffel</a></li><li><a href="/doc/eiffel/Common_myths_and_misconceptions_about_Eiffel">Common myths and misconceptions about Eiffel</a></li></ul></li><li class="expandable "><a href="/doc/eiffel/Eiffel_Tutorials">Tutorials</a><ul> <li class="expandable "><a href="/doc/eiffel/Invitation_to_Eiffel_%28I2E%29">Invitation to Eiffel</a><ul> <li><a href="/doc/eiffel/I2E-_What_Must_I_Know_First%3F">I2E: What Must I Know First?</a></li><li><a href="/doc/eiffel/I2E-_Design_Principles">I2E: Design Principles</a></li><li><a href="/doc/eiffel/I2E-_Object-Oriented_Design">I2E: Object-Oriented Design</a></li><li><a href="/doc/eiffel/I2E-_Classes">I2E: Classes</a></li><li><a href="/doc/eiffel/I2E-_Types">I2E: Types</a></li><li><a href="/doc/eiffel/I2E-_Design_by_Contract_and_Assertions">I2E: Design by Contract and Assertions</a></li><li><a href="/doc/eiffel/I2E-_Exceptions">I2E: Exceptions</a></li><li><a href="/doc/eiffel/I2E-_Event-Driven_Programming_and_Agents">I2E: Event-Driven Programming and Agents</a></li><li><a href="/doc/eiffel/I2E-_Genericity">I2E: Genericity</a></li><li><a href="/doc/eiffel/I2E-_Inheritance">I2E: Inheritance</a></li><li><a href="/doc/eiffel/I2E-_Polymorphism_and_Dynamic_Binding">I2E: Polymorphism and Dynamic Binding</a></li><li><a href="/doc/eiffel/I2E-_Combining_Genericity_and_Inheritance">I2E: Combining Genericity and Inheritance</a></li><li><a href="/doc/eiffel/I2E-_Deferred_Classes_and_Seamless_Development">I2E: Deferred Classes and Seamless Development</a></li><li><a href="/doc/eiffel/I2E-_Putting_a_System_Together">I2E: Putting a System Together</a></li><li><a href="/doc/eiffel/I2E-_Invitation_to_Eiffel_Copyright">I2E: Invitation to Eiffel Copyright</a></li></ul></li><li class="expandable "><a href="/doc/eiffel/Mini_How-tos">Mini How-tos</a><ul> <li><a href="/doc/eiffel/Getting_a_STRING_from_a_NUMERIC_object">NUMERIC to STRING</a></li><li><a href="/doc/eiffel/Iterating_on_a_LIST">Iterating on a LIST</a></li><li><a href="/doc/eiffel/Removing_object_while_iterating_on_a_LIST">Removing object while iterating on a LIST</a></li><li><a href="/doc/eiffel/Managing_CTRL%2BC_in_console_application">Managing CTRL+C in console application</a></li></ul></li><li class="expandable "><a href="/doc/eiffel/An_Eiffel_Tutorial_%28ET%29">Tutorial</a><ul> <li><a href="/doc/eiffel/ET-_Overview">ET: Overview</a></li><li><a href="/doc/eiffel/ET-_General_Properties">ET: General Properties</a></li><li><a href="/doc/eiffel/ET-_The_Software_Process_in_Eiffel">ET: The Software Process in Eiffel</a></li><li><a href="/doc/eiffel/ET-_Hello_World">ET: Hello World</a></li><li><a href="/doc/eiffel/ET-_The_Static_Picture-_System_Organization">ET: The Static Picture: System Organization</a></li><li><a href="/doc/eiffel/ET-_The_Dynamic_Structure-_Execution_Model">ET: The Dynamic Structure: Execution Model</a></li><li><a href="/doc/eiffel/ET-_Genericity_and_Arrays">ET: Genericity and Arrays</a></li><li><a href="/doc/eiffel/ET-_Design_by_Contract_%28tm%29%2C_Assertions_and_Exceptions">ET: Design by Contract (tm), Assertions and Exceptions</a></li><li><a href="/doc/eiffel/ET-_Inheritance">ET: Inheritance</a></li><li><a href="/doc/eiffel/ET-_Instructions">ET: Instructions</a></li><li><a href="/doc/eiffel/ET-_Once_routines_and_shared_objects">ET: Once routines and shared objects</a></li><li><a href="/doc/eiffel/ET-_Other_Mechanisms">ET: Other Mechanisms</a></li><li><a href="/doc/eiffel/ET-_Agents">ET: Agents</a></li><li><a href="/doc/eiffel/ET-_Lexical_Conventions_and_Style_Rules">ET: Lexical Conventions and Style Rules</a></li><li><a href="/doc/eiffel/ET-_To_Learn_More">ET: To Learn More</a></li><li><a href="/doc/eiffel/ET-_Eiffel_Tutorial_Copyright">ET: Eiffel Tutorial Copyright</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffel/Language_reference">Language</a><ul> <li class="expandable "><a href="/doc/eiffel/Quick_reference_to_the_Eiffel_programming_language">Quick Reference</a><ul> <li><a href="/doc/eiffel/Eiffel_programming_language_syntax">Syntax</a></li><li class="expandable "><a href="/doc/eiffel/Expressions">Expressions</a><ul> <li><a href="/doc/eiffel/Conditional_expression">Conditional</a></li><li><a href="/doc/eiffel/Manifest_array">Manifest array</a></li></ul></li><li><a href="/doc/eiffel/Types">Types</a></li><li><a href="/doc/eiffel/Eiffel_programming_language_reserved_words">Reserved words</a></li></ul></li><li class="expandable "><a href="/doc/eiffel/Void-safe_programming_in_Eiffel">Void-safe programming</a><ul> <li><a href="/doc/eiffel/Void-safety-_Background%2C_definition%2C_and_tools">Background and tools</a></li><li><a href="/doc/eiffel/Creating_a_new_void-safe_project">New void-safe project</a></li><li class="expandable "><a href="/doc/eiffel/Converting_existing_software_to_void-safety">Converting existing software to void-safety</a><ul> <li><a href="/doc/eiffel/Void-safe_changes_to_Eiffel_libraries">Void-safe changes to Eiffel libraries</a></li><li><a href="/doc/eiffel/Mixing_void-safe_and_void-unsafe_software">Mixing void-safe and void-unsafe software</a></li></ul></li><li><a href="/doc/eiffel/What_makes_a_Certified_Attachment_Pattern">What makes a Certified Attachment Pattern</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffel/Technical_papers_about_Eiffel">Papers</a><ul> <li><a href="/doc/eiffel/Eiffel_as_an_expression_language">Eiffel as an expression language</a></li><li><a href="/doc/eiffel/Void-safety-_how_Eiffel_removes_null-pointer_dereferencing">Void-safety: how Eiffel removes null-pointer dereferencing</a></li><li class="expandable "><a href="/doc/eiffel/Books_about_the_Eiffel_Method_and_Language">Books</a><ul> <li><a href="/doc/eiffel/Touch_of_Class-_Learning_to_Program_Well_with_Objects_and_Contracts">Touch of Class</a></li><li><a href="/doc/eiffel/Object-Oriented_Software_Construction%2C_2nd_Edition">OOSC2</a></li><li><a href="/doc/eiffel/ECMA_Standard_367">ECMA Standard 367</a></li><li><a href="/doc/eiffel/Eiffel-_The_Language">Eiffel: The Language</a></li><li><a href="/doc/eiffel/Reusable_Software-_The_Base_Object-Oriented_Component_Libraries">OO Component Libraries</a></li><li><a href="/doc/eiffel/EiffelStudio-_A_Guided_Tour_-_Eiffel_Software_Technical_Report">EiffelStudio Guided Tour</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffel/Coding_Standards">Coding Standards</a><ul> <li><a href="/doc/eiffel/Eiffel_Code_Comments">Eiffel Code Comments</a></li><li><a href="/doc/eiffel/Eiffel_Coding_Standard">Eiffel Coding Standard</a></li><li><a href="/doc/eiffel/Local_Declaration_Guidelines">Local Declaration Guidelines</a></li><li><a href="/doc/eiffel/Style_Guidelines">Style Guidelines</a></li></ul></li><li class="expandable "><a href="/doc/eiffel/Examples">Examples</a><ul> <li><a href="/doc/eiffel/Introduction_to_the_Examples_Book">Introduction to the Examples Book</a></li><li><a href="/doc/eiffel/Example-_Command_line_arguments">Example: Command line arguments</a></li><li><a href="/doc/eiffel/Example-_Environment_variables">Example: Environment variables</a></li><li><a href="/doc/eiffel/Example-_File_IO">Example: File IO</a></li><li><a href="/doc/eiffel/Example-_Polymorphism">Example: Polymorphism</a></li><li><a href="/doc/eiffel/Example-_Reverse_a_string">Example: Reverse a string</a></li><li><a href="/doc/eiffel/Example-_Self-initializing_attributes_and_assigner_commands">Example: Self-initializing attributes and assigner commands</a></li><li><a href="/doc/eiffel/Example-_Sieve_of_Eratosthenes">Example: Sieve of Eratosthenes</a></li><li><a href="/doc/eiffel/Example-_Sleep">Example: Sleep</a></li></ul></li></ul></li><li class="expandable expanded "><a href="/doc/eiffelstudio/EiffelStudio">EiffelStudio</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Getting_started">Getting started</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Setup_and_installation">Setup and installation</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Software_Installation_for_EiffelStudio">Software Installation for EiffelStudio</a><ul> <li><a href="/doc/eiffelstudio/FreeBSD">FreeBSD</a></li><li><a href="/doc/eiffelstudio/HP_OpenVMS">HP OpenVMS</a></li><li><a href="/doc/eiffelstudio/HP_Tru64_UNIX">HP Tru64 UNIX</a></li><li><a href="/doc/eiffelstudio/HP-UX">HP-UX</a></li><li><a href="/doc/eiffelstudio/Linux">Linux</a></li><li><a href="/doc/eiffelstudio/Mac_OS_X">Mac OS X</a></li><li><a href="/doc/eiffelstudio/OpenBSD">OpenBSD</a></li><li><a href="/doc/eiffelstudio/SGI_Irix">SGI Irix</a></li><li><a href="/doc/eiffelstudio/Solaris">Solaris</a></li><li class="expandable "><a href="/doc/eiffelstudio/Windows">Windows</a><ul> <li><a href="/doc/eiffelstudio/Installing_Microsoft_C_compiler">MS C compiler</a></li></ul></li></ul></li><li><a href="/doc/eiffelstudio/Third_Party_Tools_Installation_Help">Third Party Tools Installation Help</a></li></ul></li><li><a href="/doc/eiffelstudio/Introducing_EiffelStudio">Introducing EiffelStudio</a></li></ul></li><li class="expandable expanded "><a href="/doc/eiffelstudio/EiffelStudio_tutorials">Tutorials</a><ul> <li><a href="/doc/eiffelstudio/Copying_the_Example_Files">Copying the Example Files</a></li><li><a href="/doc/eiffelstudio/Starting_EiffelStudio_and_Opening_a_Project">Starting EiffelStudio and Opening a Project</a></li><li><a href="/doc/eiffelstudio/Compiling_and_Executing_a_System">Compiling and Executing a System</a></li><li><a href="/doc/eiffelstudio/A_Look_at_the_Project_Directory">A Look at the Project Directory</a></li><li class="active "><a href="/doc/eiffelstudio/Starting_To_Browse">Starting To Browse</a></li><li><a href="/doc/eiffelstudio/Viewing_Classes">Viewing Classes</a></li><li><a href="/doc/eiffelstudio/Customizing_the_tools_layout_and_toolbars">Customizing the tools layout and toolbars</a></li><li><a href="/doc/eiffelstudio/Producing_and_Exporting_Documentation">Producing and Exporting Documentation</a></li><li><a href="/doc/eiffelstudio/Browsing_Features">Browsing Features</a></li><li><a href="/doc/eiffelstudio/Retargeting_Through_Pick-and-Drop">Retargeting Through Pick-and-Drop</a></li><li><a href="/doc/eiffelstudio/Recompiling_and_Editing">Recompiling and Editing</a></li><li><a href="/doc/eiffelstudio/Handling_Syntax_and_Validity_Errors">Handling Syntax and Validity Errors</a></li><li><a href="/doc/eiffelstudio/Debugging_and_Run-time_Monitoring">Debugging and Run-time Monitoring</a></li><li class="expandable "><a href="/doc/eiffelstudio/Using_AutoTest">Using AutoTest</a><ul> <li><a href="/doc/eiffelstudio/Testing-_Background_and_basics">Testing: Background and basics</a></li><li><a href="/doc/eiffelstudio/Create_a_manual_test">Create a manual test</a></li><li><a href="/doc/eiffelstudio/Execute_tests">Execute tests</a></li><li><a href="/doc/eiffelstudio/Using_extracted_tests">Using extracted tests</a></li><li><a href="/doc/eiffelstudio/Using_generated_tests">Using generated tests</a></li><li><a href="/doc/eiffelstudio/Managing_tests">Managing tests</a></li></ul></li><li><a href="/doc/eiffelstudio/Computing_Project_Metrics">Computing Project Metrics</a></li><li><a href="/doc/eiffelstudio/Graphics-based_Design">Graphics-based Design</a></li><li><a href="/doc/eiffelstudio/Using_automatic_class_licensing">Using automatic class licensing</a></li><li><a href="/doc/eiffelstudio/How_EiffelStudio_Compiles">How EiffelStudio Compiles</a></li><li><a href="/doc/eiffelstudio/Technical_papers_about_EiffelStudio">Papers</a></li><li><a href="/doc/eiffelstudio/The_Command-Line_Compiler">The Command-Line Compiler</a></li><li><a href="/doc/eiffelstudio/Executing_a_System_Within_and_Without_EiffelStudio">Executing a System Within and Without EiffelStudio</a></li><li><a href="/doc/eiffelstudio/Writing_Documentation_Filters_with_EFF%2C_the_Eiffel_Filter_Format">Writing Filters with EFF</a></li><li><a href="/doc/eiffelstudio/Manual_identification_and_copyright">Manual identification and copyright</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio_Reference">Reference</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio_release_notes">Release Notes</a><ul> <li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_25.02">25.02</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_24.05">24.05</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_23.09">23.09</a></li><li class="expandable "><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_22.12">22.12</a><ul> <li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_22.12_-_macosx">22.12 - macosx</a></li></ul></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_22.05">22.05</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_21.11">21.11</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_20.11">20.11</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_20.05">20.05</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_19.12">19.12</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_19.05">19.05</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_18.11">18.11</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_18.07">18.07</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_18.01">18.01</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_17.05">17.05</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_17.01">17.01</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_16.05">16.05</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_15.12">15.12</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_15.08">15.08</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_15.01">15.01</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_14.05">14.05</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_13.11">13.11</a></li><li class="expandable "><a href="/doc/eiffelstudio/7.x">7.x</a><ul> <li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_7.3">7.3</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_7.2">7.2</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_7.1">7.1</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_7.0">7.0</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio_6_release_notes">6.x</a><ul> <li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_6.8">6.8</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_6.7">6.7</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_6.6">6.6</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_6.5">6.5</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_6.4">6.4</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_6.3">6.3</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_6.2">6.2</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_6.1">6.1</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_6.0">6.0</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio_5_release_notes">5.x</a><ul> <li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_5.7">5.7</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_5.6">5.6</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_5.5">5.5</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_5.4">5.4</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_5.3">5.3</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_5.2">5.2</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_5.1">5.1</a></li><li><a href="/doc/eiffelstudio/Release_notes_for_EiffelStudio_5.0">5.0</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio-_General_interface_description">General Description</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio_interface_mechanisms">EiffelStudio interface mechanisms</a><ul> <li><a href="/doc/eiffelstudio/Pick-and-drop_mechanism">Pick-and-drop mechanism</a></li><li><a href="/doc/eiffelstudio/Pick-and-drop_shortcut">Pick-and-drop shortcut</a></li><li><a href="/doc/eiffelstudio/Toolbar_customization">Toolbar customization</a></li></ul></li><li><a href="/doc/eiffelstudio/EiffelStudio-_All_shortcuts">EiffelStudio: All shortcuts</a></li><li><a href="/doc/eiffelstudio/EiffelStudio_window_overview">EiffelStudio window overview</a></li><li><a href="/doc/eiffelstudio/Main_toolbars">Main toolbars</a></li><li><a href="/doc/eiffelstudio/EiffelStudio-_Key_shortcuts">EiffelStudio: Key shortcuts</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Browsing_tools">Browsing tools</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Address_bars">Address bars</a><ul> <li><a href="/doc/eiffelstudio/Main_address_bar">Main address bar</a></li><li><a href="/doc/eiffelstudio/Context_tool_address_bar">Context tool address bar</a></li><li><a href="/doc/eiffelstudio/Change_data_share_mode">Change data share mode</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Groups_tool">Groups tool</a><ul> <li><a href="/doc/eiffelstudio/System_tree_representation">System tree representation</a></li><li><a href="/doc/eiffelstudio/New_cluster_command">New cluster command</a></li><li><a href="/doc/eiffelstudio/New_class_command">New class command</a></li><li><a href="/doc/eiffelstudio/Locate_command">Locate command</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Features_tool">Features tool</a><ul> <li><a href="/doc/eiffelstudio/Feature_tree">Feature tree</a></li><li><a href="/doc/eiffelstudio/New_feature_command">New feature command</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Favorites_tool">Favorites tool</a><ul> <li><a href="/doc/eiffelstudio/Favorites_tree">Favorites tree</a></li><li><a href="/doc/eiffelstudio/Favorites_menu">Favorites menu</a></li><li class="expandable "><a href="/doc/eiffelstudio/Organize_Favorites_dialog">Organize Favorites dialog</a><ul> <li><a href="/doc/eiffelstudio/New_favorite_class_command">New favorite class command</a></li><li><a href="/doc/eiffelstudio/Create_favorite_folder_command">Create favorite folder command</a></li><li><a href="/doc/eiffelstudio/Move_to_Folder_command">Move to Folder command</a></li><li><a href="/doc/eiffelstudio/Remove_favorite_command">Remove favorite command</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Windows_tool">Windows tool</a><ul> <li><a href="/doc/eiffelstudio/Window_list">Window list</a></li><li><a href="/doc/eiffelstudio/Window_menu">Window menu</a></li><li><a href="/doc/eiffelstudio/Window_related_commands">Window related commands</a></li></ul></li><li><a href="/doc/eiffelstudio/Search_tool">Search tool</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio_Editor">Editor</a><ul> <li><a href="/doc/eiffelstudio/Cursor_moves">Cursor moves</a></li><li><a href="/doc/eiffelstudio/Selection">Selection</a></li><li><a href="/doc/eiffelstudio/Clipboard_functionality">Clipboard functionality</a></li><li><a href="/doc/eiffelstudio/History_functionality">History functionality</a></li><li><a href="/doc/eiffelstudio/Search_functionality">Search functionality</a></li><li class="expandable "><a href="/doc/eiffelstudio/Automatic_completion">Automatic completion</a><ul> <li><a href="/doc/eiffelstudio/Syntax_auto_complete">Syntax auto complete</a></li><li><a href="/doc/eiffelstudio/Feature_call_auto_complete">Feature call auto complete</a></li><li><a href="/doc/eiffelstudio/Class_name_auto_complete">Class name auto complete</a></li></ul></li><li><a href="/doc/eiffelstudio/Code_Templates">Code Templates</a></li><li class="expandable "><a href="/doc/eiffelstudio/Operations_on_text_blocks">Operations on text blocks</a><ul> <li><a href="/doc/eiffelstudio/Comment_and_uncomment_lines">Comment and uncomment lines</a></li><li><a href="/doc/eiffelstudio/Indent_and_unindent_selection">Indent and unindent selection</a></li><li><a href="/doc/eiffelstudio/Embed_lines_in_%27if_then...end%27_or_in_%27debug...end%27">Embed lines in 'if then...end' or in 'debug...end'</a></li></ul></li><li><a href="/doc/eiffelstudio/Edit_menu_commands">Edit menu commands</a></li><li><a href="/doc/eiffelstudio/Editor_customization">Editor customization</a></li></ul></li><li><a href="/doc/eiffelstudio/Contract_Editor_tool">Contract Editor tool</a></li><li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio-_Project_settings_window">Project Settings</a><ul> <li><a href="/doc/eiffelstudio/System_Options">System Options</a></li><li class="expandable "><a href="/doc/eiffelstudio/General_Target_Options">General Target Options</a><ul> <li><a href="/doc/eiffelstudio/Language_and_Capabilities">Language and Capabilities</a></li><li><a href="/doc/eiffelstudio/Assertion_Options">Assertion Options</a></li><li><a href="/doc/eiffelstudio/Group_Options">Group Options</a></li><li class="expandable "><a href="/doc/eiffelstudio/Advanced_Options">Advanced Options</a><ul> <li><a href="/doc/eiffelstudio/Warning_Options">Warning Options</a></li><li><a href="/doc/eiffelstudio/Debug_Options">Debug Options</a></li><li><a href="/doc/eiffelstudio/Externals_Options">Externals Options</a></li><li><a href="/doc/eiffelstudio/Tasks_Options">Tasks Options</a></li><li><a href="/doc/eiffelstudio/Variables">Variables</a></li><li><a href="/doc/eiffelstudio/Type_mapping">Type mapping</a></li></ul></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Compiler">Compiler</a><ul> <li><a href="/doc/eiffelstudio/Melting_Ice_Technology">Melting Ice Technology</a></li><li><a href="/doc/eiffelstudio/Supported_C_compilers">Supported C compilers</a></li><li class="expandable "><a href="/doc/eiffelstudio/Command_line">Command line</a><ul> <li><a href="/doc/eiffelstudio/Eiffel_compatibility_options">Eiffel compatibility options</a></li><li><a href="/doc/eiffelstudio/EiffelStudio-_Using_command_line_options">Using command line options</a></li><li><a href="/doc/eiffelstudio/Batch_compilation">Batch compilation</a></li><li class="expandable "><a href="/doc/eiffelstudio/Command_line_interactive_mode">Command line interactive mode</a><ul> <li><a href="/doc/eiffelstudio/Compile_%28and_run%29_menu">Compile (and run) menu</a></li><li><a href="/doc/eiffelstudio/Class_menu">Class menu</a></li><li><a href="/doc/eiffelstudio/Feature_menu">Feature menu</a></li><li><a href="/doc/eiffelstudio/System_menu">System menu</a></li><li><a href="/doc/eiffelstudio/Testing_menu">Testing menu</a></li><li><a href="/doc/eiffelstudio/Profile_menu">Profile menu</a></li><li><a href="/doc/eiffelstudio/Documentation_menu">Documentation menu</a></li></ul></li><li><a href="/doc/eiffelstudio/finish_freezing_utility">finish_freezing utility</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Dynamic_library_generation">Dynamic library generation</a><ul> <li><a href="/doc/eiffelstudio/Dynamic_library_builder">Dynamic library builder</a></li><li><a href="/doc/eiffelstudio/Definition_file">Definition file</a></li><li><a href="/doc/eiffelstudio/Dynamic_library-_Generated_files">Dynamic library: Generated files</a></li></ul></li><li><a href="/doc/eiffelstudio/Syntax_level_variant_settings_by_version">Syntax level variant settings by version</a></li><li><a href="/doc/eiffelstudio/Differences_between_standard_ECMA-367_and_Eiffel_Software_implementation">ECMA-367 vs implementation</a></li><li><a href="/doc/eiffelstudio/Differences_between_ETL_2nd_printing_and__Eiffel_Software__implementation">ETL 2nd printing vs implementation</a></li><li class="expandable "><a href="/doc/eiffelstudio/Compiler_History">Compiler History</a><ul> <li><a href="/doc/eiffelstudio/Major_changes_with_ISE_Eiffel_18.01_and_18.07">18.07</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_15.12_and_ISE_Eiffel_16.05">16.05</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_15.08_and_ISE_Eiffel_15.12">15.12</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_15.01_and_ISE_Eiffel_15.08">15.08</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_13.11_and_ISE_Eiffel_14.05">14.05</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_7.3_and_ISE_Eiffel_13.11">13.11</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_7.2_and_ISE_Eiffel_7.3">7.3</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_7.1_and_ISE_Eiffel_7.2">7.2</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_7.0_and_ISE_Eiffel_7.1">7.1</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_6.8_and_ISE_Eiffel_7.0">7.0</a></li><li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio_6_compiler_history">6.x</a><ul> <li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_6.7_and_ISE_Eiffel_6.8">6.8</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_6.6_and_ISE_Eiffel_6.7">6.7</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_6.5_and_ISE_Eiffel_6.6">6.6</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_6.4_and_ISE_Eiffel_6.5">6.5</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_6.3_and_ISE_Eiffel_6.4">6.4</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_6.2_and_ISE_Eiffel_6.3">6.3</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_6.1_and_ISE_Eiffel_6.2">6.2</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_6.0_and_ISE_Eiffel_6.1">6.1</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_5.7_and_ISE_Eiffel_6.0">6.0</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio_5_compiler_history">5.x</a><ul> <li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_5.6_and_ISE_Eiffel_5.7">5.7</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_5.5_and_ISE_Eiffel_5.6">5.6</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_5.4_and_ISE_Eiffel_5.5">5.5</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_5.3_and_ISE_Eiffel_5.4">5..4</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_5.2_and_ISE_Eiffel_5.3">5.3</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_5.1_and_ISE_Eiffel_5.2">5.2</a></li><li><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_5.0_and_ISE_Eiffel_5.1">5.1</a></li><li class="expandable "><a href="/doc/eiffelstudio/Major_changes_between_ISE_Eiffel_4.5_and_ISE_Eiffel_5.0">5.0</a><ul> <li><a href="/doc/eiffelstudio/Assertions_checking_configuration_changes">Assertions checking configuration changes</a></li><li><a href="/doc/eiffelstudio/EiffelThread_differences_from_4.5_to_5.0">EiffelThread differences from 4.5 to 5.0</a></li><li><a href="/doc/eiffelstudio/Compiler_differences_from_4.5_to_5.0">Compiler differences from 4.5 to 5.0</a></li></ul></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Errors_and_warnings">Errors, warnings</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Legacy_code">Legacy code</a><ul> <li><a href="/doc/eiffelstudio/VD81">VD81</a></li><li><a href="/doc/eiffelstudio/VWMA%281%29">VWMA(1)</a></li></ul></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Code_Analyzer">Code Analyzer</a><ul> <li><a href="/doc/eiffelstudio/Getting_Started">Getting Started</a></li><li><a href="/doc/eiffelstudio/Running_the_Code_Analyzer">Running the Analyzer</a></li><li><a href="/doc/eiffelstudio/Code_Analyzer-_Interpreting_Results">Interpreting Results</a></li><li><a href="/doc/eiffelstudio/Code_Analyzer-_Customization">Customization</a></li><li class="expandable "><a href="/doc/eiffelstudio/Code_Analyzer-_Rules">Rules</a><ul> <li><a href="/doc/eiffelstudio/CA001_-_Self_Assignment">CA001</a></li><li><a href="/doc/eiffelstudio/CA002_-_Unused_argument">CA002</a></li><li><a href="/doc/eiffelstudio/CA003_-_Feature_never_called">CA003</a></li><li><a href="/doc/eiffelstudio/CA004_-_Command-Query_Separation">CA004</a></li><li><a href="/doc/eiffelstudio/CA005_-_Useless_object_test_local">CA005</a></li><li><a href="/doc/eiffelstudio/CA006_-_Object_test_typing_not_needed">CA006</a></li><li><a href="/doc/eiffelstudio/CA010_-_High_complexity_of_nested_branches_and_loops">CA010</a></li><li><a href="/doc/eiffelstudio/CA011_-_Too_many_arguments">CA011</a></li><li><a href="/doc/eiffelstudio/CA013_-_Exported_creation_procedure">CA013</a></li><li><a href="/doc/eiffelstudio/CA017_-_Empty_conditional">CA017</a></li><li><a href="/doc/eiffelstudio/CA020_-_Variable_not_read_after_assignment">CA020</a></li><li><a href="/doc/eiffelstudio/CA023_-_Unneeded_parentheses">CA023</a></li><li><a href="/doc/eiffelstudio/CA024_-_Use_across_loop">CA024</a></li><li><a href="/doc/eiffelstudio/CA025_-_Use_semicolons">CA025</a></li><li><a href="/doc/eiffelstudio/CA028_-_Combine_two_if_instructions">CA028</a></li><li><a href="/doc/eiffelstudio/CA032_-_Long_routine_implementation">CA032</a></li><li><a href="/doc/eiffelstudio/CA033_-_Large_class">CA033</a></li><li><a href="/doc/eiffelstudio/CA034_-_High_NPATH_complexity">CA034</a></li><li><a href="/doc/eiffelstudio/CA071_-_Self-comparison">CA071</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Debugger">Debugger</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Execution_commands">Execution commands</a><ul> <li><a href="/doc/eiffelstudio/Run_and_stop_at_breakpoints">Run and stop at breakpoints</a></li><li><a href="/doc/eiffelstudio/Run_with_arguments">Run with arguments</a></li><li><a href="/doc/eiffelstudio/Execution_profiles">Execution profiles</a></li><li><a href="/doc/eiffelstudio/Run_without_breakpoints">Run without breakpoints</a></li><li><a href="/doc/eiffelstudio/Run_a_finalized_executable">Run a finalized executable</a></li><li><a href="/doc/eiffelstudio/Step_into_a_feature">Step into a feature</a></li><li><a href="/doc/eiffelstudio/Execute_one_line_at_a_time">Execute one line at a time</a></li><li><a href="/doc/eiffelstudio/Step_out_of_a_feature">Step out of a feature</a></li><li><a href="/doc/eiffelstudio/Pause_an_application">Pause an application</a></li><li><a href="/doc/eiffelstudio/Stop_a_debugged_application">Stop a debugged application</a></li><li><a href="/doc/eiffelstudio/Attach_application">Attach application</a></li><li><a href="/doc/eiffelstudio/Detach_application">Detach application</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Breakpoints">Breakpoints</a><ul> <li><a href="/doc/eiffelstudio/Breakpoint_editing">Breakpoint editing</a></li><li><a href="/doc/eiffelstudio/Breakpoint_commands">Breakpoint commands</a></li><li><a href="/doc/eiffelstudio/Breakpoint_information_command">Breakpoint information command</a></li><li><a href="/doc/eiffelstudio/Breakpoint_menu">Breakpoint menu</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Call_stack_tool">Call stack tool</a><ul> <li><a href="/doc/eiffelstudio/Call_stack_tool-_Interface">Call stack tool: Interface</a></li><li><a href="/doc/eiffelstudio/Information_relative_to_a_stack_element">Information relative to a stack element</a></li><li><a href="/doc/eiffelstudio/Supported_exceptions">Supported exceptions</a></li><li><a href="/doc/eiffelstudio/Save_call_stack">Save call stack</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Execution_record_and_replay">Execution record and replay</a><ul> <li><a href="/doc/eiffelstudio/Record_execution">Record execution</a></li><li><a href="/doc/eiffelstudio/Replay_%28recorded%29_execution">Replay (recorded) execution</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Object_tool">Object tool</a><ul> <li><a href="/doc/eiffelstudio/Attribute_symbols">Attribute symbols</a></li><li><a href="/doc/eiffelstudio/Debug_output">Debug output</a></li><li><a href="/doc/eiffelstudio/Set_slice_size_command">Set slice size command</a></li><li><a href="/doc/eiffelstudio/Object_Viewer_%28also_known_as_Expanded_display%29">Object Viewer (also known as Expanded display)</a></li><li><a href="/doc/eiffelstudio/Remove_object_command">Remove object command</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Expression_evaluation">Expression evaluation</a><ul> <li><a href="/doc/eiffelstudio/Evaluation_tool_or_Watch_tool">Evaluation tool or Watch tool</a></li><li><a href="/doc/eiffelstudio/New_expression_dialog">New expression dialog</a></li></ul></li><li><a href="/doc/eiffelstudio/Debuggee%27s_Object_Storage">Debuggee's Object Storage</a></li><li><a href="/doc/eiffelstudio/Threads_tool">Threads tool</a></li><li><a href="/doc/eiffelstudio/Exceptions_handling_tool">Exceptions handling tool</a></li><li><a href="/doc/eiffelstudio/Stack_overflow_prevention">Stack overflow prevention</a></li><li><a href="/doc/eiffelstudio/Debugging_tips_with_the_objects_grid_view">Debugging tips with the objects grid view</a></li><li><a href="/doc/eiffelstudio/Debugging_preferences">Debugging preferences</a></li><li><a href="/doc/eiffelstudio/Command_line_debugger">Command line debugger</a></li><li><a href="/doc/eiffelstudio/Debugging_limitations">Debugging limitations</a></li></ul></li><li><a href="/doc/eiffelstudio/Error_List_Tool">Error List Tool</a></li><li class="expandable "><a href="/doc/eiffelstudio/Diagram_tool">Diagram tool</a><ul> <li><a href="/doc/eiffelstudio/Notation">Notation</a></li><li><a href="/doc/eiffelstudio/Diagram_toolbar">Diagram toolbar</a></li><li><a href="/doc/eiffelstudio/Views">Views</a></li><li><a href="/doc/eiffelstudio/Contexts">Contexts</a></li><li><a href="/doc/eiffelstudio/Diagram_tool-_Code_generation">Diagram tool: Code generation</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Metrics_tool">Metrics tool</a><ul> <li><a href="/doc/eiffelstudio/Requirements">Requirements</a></li><li class="expandable "><a href="/doc/eiffelstudio/Definitions">Definitions</a><ul> <li><a href="/doc/eiffelstudio/Attributes%2C_metrics_and_measures">Attributes, metrics and measures</a></li><li><a href="/doc/eiffelstudio/Units">Units</a></li><li><a href="/doc/eiffelstudio/Metric_framework_and_theory">Metric framework and theory</a></li><li><a href="/doc/eiffelstudio/Elementary_and_composite_metrics">Elementary and composite metrics</a></li><li><a href="/doc/eiffelstudio/Raw_metrics_and_selection_criteria">Raw metrics and selection criteria</a></li><li><a href="/doc/eiffelstudio/Selection_Criteria">Selection Criteria</a></li><li><a href="/doc/eiffelstudio/Predefined_raw_metrics">Predefined raw metrics</a></li><li><a href="/doc/eiffelstudio/Scopes">Scopes</a></li><li><a href="/doc/eiffelstudio/Domains">Domains</a></li><li><a href="/doc/eiffelstudio/Measurement_archive">Measurement archive</a></li><li><a href="/doc/eiffelstudio/Under_the_Hood_-_How_metrics_work">Under the Hood - How metrics work</a></li><li><a href="/doc/eiffelstudio/Criterion_References">Criterion References</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/User_interface_basics">User interface basics</a><ul> <li><a href="/doc/eiffelstudio/Metric_Evaluation_Panel">Metric Evaluation Panel</a></li><li><a href="/doc/eiffelstudio/Detailed_Result_Panel">Detailed Result Panel</a></li><li><a href="/doc/eiffelstudio/Metric_Definition_Panel">Metric Definition Panel</a></li><li><a href="/doc/eiffelstudio/Metric_History_Panel">Metric History Panel</a></li><li><a href="/doc/eiffelstudio/Metric_Archive_Panel">Metric Archive Panel</a></li></ul></li></ul></li><li><a href="/doc/eiffelstudio/Console_tool">Console tool</a></li><li class="expandable "><a href="/doc/eiffelstudio/Outputs_tool">Outputs tool</a><ul> <li><a href="/doc/eiffelstudio/General_output_pane">General output pane</a></li><li><a href="/doc/eiffelstudio/External_compilation_pane">External compilation pane</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Eiffel_Information_System">Eiffel Information System</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/EIS-_Outgoing">EIS: Outgoing</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Information_Tool">Information Tool</a><ul> <li><a href="/doc/eiffelstudio/Browsing_Information">Browsing Information</a></li><li><a href="/doc/eiffelstudio/Change_Analysis">Change Analysis</a></li><li><a href="/doc/eiffelstudio/Annotation_Management">Annotation Management</a></li><li><a href="/doc/eiffelstudio/Protocols">Protocols</a></li><li><a href="/doc/eiffelstudio/Variable_Definition">Variable Definition</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/EIS-_Incoming">EIS: Incoming</a><ul> <li><a href="/doc/eiffelstudio/Eiffel_Scheme_Syntax">Eiffel Scheme Syntax</a></li><li><a href="/doc/eiffelstudio/EIS_incoming_Examples">EIS incoming Examples</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/AutoTest">AutoTest</a><ul> <li><a href="/doc/eiffelstudio/The_AutoTest_Interface">The AutoTest Interface</a></li><li><a href="/doc/eiffelstudio/The_Eiffel_Test_Wizard">The Eiffel Test Wizard</a></li></ul></li><li><a href="/doc/eiffelstudio/Source_Control_Management">Source Control</a></li><li class="expandable "><a href="/doc/eiffelstudio/Wizards_and_dialogs">Wizards and dialogs</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Profiler_Wizard">Profiler Wizard</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Profiler_wizard_guided_tour">Profiler wizard guided tour</a><ul> <li><a href="/doc/eiffelstudio/Select_the_Compilation_mode">Select the Compilation mode</a></li><li><a href="/doc/eiffelstudio/Reuse_or_Generate_an_Execution_Profile">Reuse or Generate an Execution Profile</a></li><li><a href="/doc/eiffelstudio/Select_a_Run-time_information_record_to_generate_the_Execution_Profile">Select a Run-time information record to generate the Execution Profile</a></li><li><a href="/doc/eiffelstudio/Select_the_information_you_need_and_formulate_your_query">Select the information you need and formulate your query</a></li><li><a href="/doc/eiffelstudio/Profile_query_window">Profile query window</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Profiler_How_To%27s">Profiler How To's</a><ul> <li><a href="/doc/eiffelstudio/How_to_set_up_a_Profiler_Configuration_File">How to set up a Profiler Configuration File</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Dialogs">Dialogs</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/New_feature_dialog">New feature dialog</a><ul> <li><a href="/doc/eiffelstudio/New_feature_dialog_overview">New feature dialog overview</a></li><li><a href="/doc/eiffelstudio/New_procedure_layout">New procedure layout</a></li><li><a href="/doc/eiffelstudio/New_function_layout">New function layout</a></li><li><a href="/doc/eiffelstudio/New_attribute_layout">New attribute layout</a></li><li class="expandable "><a href="/doc/eiffelstudio/New_feature_dialog-_feature_properties_modification">New feature dialog: feature properties modification</a><ul> <li><a href="/doc/eiffelstudio/Feature_clauses">Feature clauses</a></li><li><a href="/doc/eiffelstudio/Name_field">Name field</a></li><li><a href="/doc/eiffelstudio/Argument_list">Argument list</a></li><li><a href="/doc/eiffelstudio/Header_comment">Header comment</a></li><li><a href="/doc/eiffelstudio/Precondition">Precondition</a></li><li><a href="/doc/eiffelstudio/Local_variable">Local variable</a></li><li><a href="/doc/eiffelstudio/Feature_body">Feature body</a></li><li><a href="/doc/eiffelstudio/Postcondition">Postcondition</a></li><li><a href="/doc/eiffelstudio/Type_selection">Type selection</a></li><li><a href="/doc/eiffelstudio/Invariant_field">Invariant field</a></li><li><a href="/doc/eiffelstudio/Set-procedure">Set-procedure</a></li></ul></li></ul></li><li><a href="/doc/eiffelstudio/Error_wizard">Error wizard</a></li><li><a href="/doc/eiffelstudio/External_commands_editor_dialog">External commands editor dialog</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio_Preferences">EiffelStudio Preferences</a><ul> <li><a href="/doc/eiffelstudio/Preference_window_overview">Preference window overview</a></li><li class="expandable "><a href="/doc/eiffelstudio/Preferences_Reference">Preferences Reference</a><ul> <li><a href="/doc/eiffelstudio/General_Preferences">General Preferences</a></li><li class="expandable "><a href="/doc/eiffelstudio/Interface">Interface</a><ul> <li><a href="/doc/eiffelstudio/Development_Window_Preferences">Development Window Preferences</a></li><li><a href="/doc/eiffelstudio/Discardable_dialogs">Discardable dialogs</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio_Tools_Preferences">EiffelStudio Tools Preferences</a><ul> <li><a href="/doc/eiffelstudio/Context_Tools">Context Tools</a></li><li><a href="/doc/eiffelstudio/EiffelStudio_Diagram_Tool_Preferences">EiffelStudio Diagram Tool Preferences</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Editor_Preferences">Editor Preferences</a><ul> <li><a href="/doc/eiffelstudio/General_Editor_Preferences">General Editor Preferences</a></li><li class="expandable "><a href="/doc/eiffelstudio/Eiffel_Editor_Preferences">Eiffel Editor Preferences</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Syntax_automatic_completion_preferences">Syntax automatic completion preferences</a><ul> <li><a href="/doc/eiffelstudio/Keywords_automatic_completion_preferences">Keywords automatic completion preferences</a></li><li><a href="/doc/eiffelstudio/Keyword_completion_customization">Keyword completion customization</a></li><li><a href="/doc/eiffelstudio/Default_values_for_keyword_completion_preferences">Default values for keyword completion preferences</a></li></ul></li></ul></li><li><a href="/doc/eiffelstudio/Keyboard_shortcuts_preferences">Keyboard shortcuts preferences</a></li></ul></li><li><a href="/doc/eiffelstudio/Debugger_Preferences">Debugger Preferences</a></li><li><a href="/doc/eiffelstudio/Recent_Project_Preferences">Recent Project Preferences</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Formatted_information_about_compiled_classes_and_features">Formatted information about compiled classes and features</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Class_views">Class views</a><ul> <li><a href="/doc/eiffelstudio/Class_formatters-_Basic_text_view">Class formatters: Basic text view</a></li><li><a href="/doc/eiffelstudio/Clickable_view">Clickable view</a></li><li><a href="/doc/eiffelstudio/Class_formatters-_Flat_view">Class formatters: Flat view</a></li><li><a href="/doc/eiffelstudio/Contract_view">Contract view</a></li><li><a href="/doc/eiffelstudio/Flat_Contract_view">Flat Contract view</a></li><li><a href="/doc/eiffelstudio/Ancestors">Ancestors</a></li><li><a href="/doc/eiffelstudio/Descendants">Descendants</a></li><li><a href="/doc/eiffelstudio/Clients">Clients</a></li><li><a href="/doc/eiffelstudio/Suppliers">Suppliers</a></li><li><a href="/doc/eiffelstudio/Attributes">Attributes</a></li><li><a href="/doc/eiffelstudio/Routines">Routines</a></li><li><a href="/doc/eiffelstudio/Invariants">Invariants</a></li><li><a href="/doc/eiffelstudio/Creators">Creators</a></li><li><a href="/doc/eiffelstudio/Deferred_features">Deferred features</a></li><li><a href="/doc/eiffelstudio/Once_routines_and_constants">Once routines and constants</a></li><li><a href="/doc/eiffelstudio/Class_formatters-_External_features">Class formatters: External features</a></li><li><a href="/doc/eiffelstudio/Exported_features">Exported features</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Feature_views">Feature views</a><ul> <li><a href="/doc/eiffelstudio/Feature_formatters-_Basic_text_view">Feature formatters: Basic text view</a></li><li><a href="/doc/eiffelstudio/Feature_formatters-_Flat_view">Feature formatters: Flat view</a></li><li><a href="/doc/eiffelstudio/Feature_formatters-_Callers">Feature formatters: Callers</a></li><li><a href="/doc/eiffelstudio/Feature_formatters-_Assigners">Feature formatters: Assigners</a></li><li><a href="/doc/eiffelstudio/Feature_formatters-_Creators">Feature formatters: Creators</a></li><li><a href="/doc/eiffelstudio/Feature_formatters-_Callees">Feature formatters: Callees</a></li><li><a href="/doc/eiffelstudio/Feature_formatters-_Assignees">Feature formatters: Assignees</a></li><li><a href="/doc/eiffelstudio/Feature_formatters-_Creations">Feature formatters: Creations</a></li><li><a href="/doc/eiffelstudio/Feature_formatters-_Implementers">Feature formatters: Implementers</a></li><li><a href="/doc/eiffelstudio/Feature_formatters-_Ancestor_versions">Feature formatters: Ancestor versions</a></li><li><a href="/doc/eiffelstudio/Feature_formatters-_Descendant_versions">Feature formatters: Descendant versions</a></li><li><a href="/doc/eiffelstudio/Feature_formatters-_Homonyms">Feature formatters: Homonyms</a></li></ul></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio_How_To%27s">EiffelStudio How To's</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/EiffelStudio-_Starting_a_project">EiffelStudio: Starting a project</a><ul> <li><a href="/doc/eiffelstudio/EiffelStudio-_Creating_a_new_project">EiffelStudio: Creating a new project</a></li><li><a href="/doc/eiffelstudio/Retrieving_a_project_from_a_configuration_file">Retrieving a project from a configuration file</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Browsing">Browsing</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Searching">Searching</a><ul> <li><a href="/doc/eiffelstudio/Looking_for_a_cluster">Looking for a cluster</a></li><li><a href="/doc/eiffelstudio/Looking_for_a_class">Looking for a class</a></li><li><a href="/doc/eiffelstudio/Looking_for_a_feature">Looking for a feature</a></li><li><a href="/doc/eiffelstudio/Looking_for_an_expression_in_text">Looking for an expression in text</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Viewing_information_about_a_component">Viewing information about a component</a><ul> <li><a href="/doc/eiffelstudio/Centering_tools_on_a_component">Centering tools on a component</a></li><li><a href="/doc/eiffelstudio/Viewing_information_about_a_cluster">Viewing information about a cluster</a></li><li><a href="/doc/eiffelstudio/Viewing_information_about_a_class">Viewing information about a class</a></li><li><a href="/doc/eiffelstudio/Viewing_information_about_a_feature">Viewing information about a feature</a></li></ul></li><li><a href="/doc/eiffelstudio/Opening_new_windows">Opening new windows</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Editing_a_project">Editing a project</a><ul> <li><a href="/doc/eiffelstudio/Adding_a_cluster">Adding a cluster</a></li><li><a href="/doc/eiffelstudio/Adding_a_library">Adding a library</a></li><li><a href="/doc/eiffelstudio/Adding_a_class">Adding a class</a></li><li class="expandable "><a href="/doc/eiffelstudio/Adding_a_feature">Adding a feature</a><ul> <li><a href="/doc/eiffelstudio/Opening_the_new_feature_dialog">Opening the new feature dialog</a></li><li><a href="/doc/eiffelstudio/Adding_a_procedure">Adding a procedure</a></li><li><a href="/doc/eiffelstudio/Adding_a_function">Adding a function</a></li><li><a href="/doc/eiffelstudio/Adding_an_attribute">Adding an attribute</a></li></ul></li><li><a href="/doc/eiffelstudio/Removing_a_cluster">Removing a cluster</a></li><li><a href="/doc/eiffelstudio/Removing_a_class">Removing a class</a></li><li><a href="/doc/eiffelstudio/Removing_a_feature">Removing a feature</a></li><li><a href="/doc/eiffelstudio/Moving_a_class">Moving a class</a></li><li><a href="/doc/eiffelstudio/Changing_project_parameters">Changing project parameters</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Compiling">Compiling</a><ul> <li><a href="/doc/eiffelstudio/Generating_executables">Generating executables</a></li><li><a href="/doc/eiffelstudio/Generating_libraries">Generating libraries</a></li><li><a href="/doc/eiffelstudio/Setting_the_assertion_level">Setting the assertion level</a></li><li><a href="/doc/eiffelstudio/Setting_the_syntax_variant">Setting the syntax variant</a></li><li><a href="/doc/eiffelstudio/Enabling_the_profiler">Enabling the profiler</a></li><li><a href="/doc/eiffelstudio/Using_libraries">Using libraries</a></li><li><a href="/doc/eiffelstudio/Tuning_a_program">Tuning a program</a></li><li><a href="/doc/eiffelstudio/Using_threads">Using threads</a></li><li><a href="/doc/eiffelstudio/Clean_compile">Clean compile</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Running_and_debugging">Running and debugging</a><ul> <li><a href="/doc/eiffelstudio/Running_an_application">Running an application</a></li><li><a href="/doc/eiffelstudio/Interrupting_an_application">Interrupting an application</a></li><li><a href="/doc/eiffelstudio/Exploring_an_application_dynamic_state">Exploring an application dynamic state</a></li><li><a href="/doc/eiffelstudio/Using_breakpoints">Using breakpoints</a></li><li><a href="/doc/eiffelstudio/Handling_exceptions">Handling exceptions</a></li><li><a href="/doc/eiffelstudio/Using_debug_clauses">Using debug clauses</a></li><li><a href="/doc/eiffelstudio/Setting_the_command_line_arguments">Setting the command line arguments</a></li><li><a href="/doc/eiffelstudio/Profiling">Profiling</a></li><li><a href="/doc/eiffelstudio/Tracing">Tracing</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Designing_a_project">Designing a project</a><ul> <li><a href="/doc/eiffelstudio/Switching_to_the_diagram_tool">Switching to the diagram tool</a></li><li><a href="/doc/eiffelstudio/Undoing_and_redoing">Undoing and redoing</a></li><li class="expandable "><a href="/doc/eiffelstudio/Altering_the_system">Altering the system</a><ul> <li><a href="/doc/eiffelstudio/Creating_a_new_class">Creating a new class</a></li><li><a href="/doc/eiffelstudio/Creating_a_new_feature">Creating a new feature</a></li><li class="expandable "><a href="/doc/eiffelstudio/Refactoring">Refactoring</a><ul> <li><a href="/doc/eiffelstudio/Rename_Class">Rename Class</a></li><li><a href="/doc/eiffelstudio/Rename_Feature">Rename Feature</a></li><li><a href="/doc/eiffelstudio/Pull_up_Feature">Pull up Feature</a></li></ul></li><li><a href="/doc/eiffelstudio/Deleting_items">Deleting items</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Managing_links">Managing links</a><ul> <li><a href="/doc/eiffelstudio/Creating_inheritance_links">Creating inheritance links</a></li><li><a href="/doc/eiffelstudio/Creating_client-supplier_links">Creating client-supplier links</a></li><li><a href="/doc/eiffelstudio/Creating_aggregate_client-supplier_links">Creating aggregate client-supplier links</a></li><li><a href="/doc/eiffelstudio/Using_the_link_tool">Using the link tool</a></li><li><a href="/doc/eiffelstudio/Creating_handles">Creating handles</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Modifying_the_display">Modifying the display</a><ul> <li><a href="/doc/eiffelstudio/Showing_or_hiding_links_and_labels">Showing or hiding links and labels</a></li><li><a href="/doc/eiffelstudio/Changing_system_exploration_depth">Changing system exploration depth</a></li><li><a href="/doc/eiffelstudio/Removing_items_from_a_view">Removing items from a view</a></li><li><a href="/doc/eiffelstudio/Changing_colors_of_classes">Changing colors of classes</a></li><li><a href="/doc/eiffelstudio/Zooming_a_diagram">Zooming a diagram</a></li><li><a href="/doc/eiffelstudio/Retrieving_all_classes_into_a_cluster">Retrieving all classes into a cluster</a></li><li><a href="/doc/eiffelstudio/Iconifying_and_restoring_a_cluster">Iconifying and restoring a cluster</a></li><li><a href="/doc/eiffelstudio/Change_the_Display_Quality">Change the Display Quality</a></li><li><a href="/doc/eiffelstudio/Turn_on_Physics_Mode">Turn on Physics Mode</a></li><li><a href="/doc/eiffelstudio/Switching_between_BON_and_UML_View">Switching between BON and UML View</a></li><li><a href="/doc/eiffelstudio/Anchoring">Anchoring</a></li><li><a href="/doc/eiffelstudio/Adjusting_Physics_Settings">Adjusting Physics Settings</a></li><li><a href="/doc/eiffelstudio/Using_the_Cluster_Legend">Using the Cluster Legend</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Managing_views">Managing views</a><ul> <li><a href="/doc/eiffelstudio/Adding_a_view">Adding a view</a></li><li><a href="/doc/eiffelstudio/Deleting_a_view">Deleting a view</a></li></ul></li><li><a href="/doc/eiffelstudio/Exporting_a_diagram_to_PNG_image_file">Exporting a diagram to PNG image file</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/How_to_analyze_a_project">How to analyze a project</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Computing_a_measure">Computing a measure</a><ul> <li><a href="/doc/eiffelstudio/Evaluating_a_measure">Evaluating a measure</a></li><li><a href="/doc/eiffelstudio/Saving_a_measure">Saving a measure</a></li><li><a href="/doc/eiffelstudio/Viewing_measure_details">Viewing measure details</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Handling_new_metrics">Handling new metrics</a><ul> <li class="expandable "><a href="/doc/eiffelstudio/Defining_new_metrics">Defining new metrics</a><ul> <li><a href="/doc/eiffelstudio/Defining_derived_metrics">Defining derived metrics</a></li><li><a href="/doc/eiffelstudio/Defining_linear_metrics">Defining linear metrics</a></li><li><a href="/doc/eiffelstudio/Defining_ratio_metrics">Defining ratio metrics</a></li></ul></li><li><a href="/doc/eiffelstudio/Managing_new_metrics">Managing new metrics</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Handling_archives">Handling archives</a><ul> <li><a href="/doc/eiffelstudio/Creating_an_archive">Creating an archive</a></li><li><a href="/doc/eiffelstudio/Comparing_to_an_archive">Comparing to an archive</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Generating_documentation">Generating documentation</a><ul> <li><a href="/doc/eiffelstudio/Generating_multi-format_documentation">Generating multi-format documentation</a></li><li><a href="/doc/eiffelstudio/Generating_XMI_documentation">Generating XMI documentation</a></li></ul></li><li class="expandable "><a href="/doc/eiffelstudio/Customizing_EiffelStudio">Customizing EiffelStudio</a><ul> <li><a href="/doc/eiffelstudio/Setting_the_editor_behavior">Setting the editor behavior</a></li><li><a href="/doc/eiffelstudio/Changing_texts_display">Changing texts display</a></li><li><a href="/doc/eiffelstudio/Customizing_toolbars">Customizing toolbars</a></li><li><a href="/doc/eiffelstudio/Making_the_context_tool_independent_from_the_editor">Making the context tool independent from the editor</a></li><li><a href="/doc/eiffelstudio/Changing_the_default_history_size">Changing the default history size</a></li><li><a href="/doc/eiffelstudio/Choosing_classes_to_be_ignored_in_BON_diagrams">Choosing classes to be ignored in BON diagrams</a></li><li><a href="/doc/eiffelstudio/Customizing_class_text_views">Customizing class text views</a></li><li><a href="/doc/eiffelstudio/Configuring_an_external_editor">Configuring an external editor</a></li><li><a href="/doc/eiffelstudio/Customizing_EiffelStudio_for_Subversion_commands">Customizing EiffelStudio for Subversion commands</a></li></ul></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Solutions_and_Libraries">Solutions and Libraries</a><ul> <li><a href="/doc/solutions/IRON-_Eiffel_package_repository">IRON Eiffel repository</a></li><li class="expandable "><a href="/doc/solutions/.NET">.NET</a><ul> <li><a href="/doc/solutions/.NET_Installation_instructions">.NET Installation instructions</a></li><li><a href="/doc/solutions/Building_a_.NET_application">Building a .NET application</a></li><li class="expandable "><a href="/doc/solutions/The_Eiffel_for_.NET_language">The Eiffel for .NET language</a><ul> <li class="expandable "><a href="/doc/solutions/Conventions">Conventions</a><ul> <li><a href="/doc/solutions/Eiffel_for_.NET_Terminology">Eiffel for .NET Terminology</a></li><li><a href="/doc/solutions/Eiffel_Class_and_Feature_Names">Eiffel Class and Feature Names</a></li><li><a href="/doc/solutions/Type_Organization">Type Organization</a></li><li><a href="/doc/solutions/Constructors_and_Creation_Procedures">Constructors and Creation Procedures</a></li><li><a href="/doc/solutions/Similar_Types_Occurring_in_Both_Libraries">Similar Types Occurring in Both Libraries</a></li><li><a href="/doc/solutions/Eiffel_reserved_words">Eiffel reserved words</a></li></ul></li><li class="expandable "><a href="/doc/solutions/Eiffel_for_.NET">Eiffel for .NET</a><ul> <li><a href="/doc/solutions/Eiffel_Classes">Eiffel Classes</a></li><li><a href="/doc/solutions/Adding_Class_Features">Adding Class Features</a></li><li><a href="/doc/solutions/Inheritance">Inheritance</a></li><li><a href="/doc/solutions/Genericity">Genericity</a></li><li><a href="/doc/solutions/Design_by_Contract_and_Assertions">Design by Contract and Assertions</a></li><li><a href="/doc/solutions/Exception_Mechanism">Exception Mechanism</a></li><li><a href="/doc/solutions/Event_Programming_with_Agents">Event Programming with Agents</a></li><li><a href="/doc/solutions/Using_Referenced_Assemblies">Using Referenced Assemblies</a></li><li><a href="/doc/solutions/Eiffel_for_.NET_Compliance">Eiffel for .NET Compliance</a></li><li><a href="/doc/solutions/Referenced_Assembly_Type_and_Feature_Name_Conversion">Referenced Assembly Type and Feature Name Conversion</a></li></ul></li><li class="expandable "><a href="/doc/solutions/Eiffel_for_.NET_Integration">Eiffel for .NET Integration</a><ul> <li><a href="/doc/solutions/Workaround_Eiffel_.NET_limitations">Workarounds</a></li><li><a href="/doc/solutions/Eiffel_.NETCore_execution">NETCore execution</a></li></ul></li><li><a href="/doc/solutions/Known_issues">Known issues</a></li></ul></li><li class="expandable "><a href="/doc/solutions/Eiffel_.NET_samples">Eiffel .NET samples</a><ul> <li class="expandable "><a href="/doc/solutions/ADO_.NET_Samples">ADO .NET Samples</a><ul> <li><a href="/doc/solutions/ADO.NET_Sample">ADO.NET Sample</a></li></ul></li><li class="expandable "><a href="/doc/solutions/Console_Samples">Console Samples</a><ul> <li><a href="/doc/solutions/Calculator-_console">Calculator: console</a></li></ul></li><li class="expandable "><a href="/doc/solutions/Threads_Samples">Threads Samples</a><ul> <li><a href="/doc/solutions/Pools">Pools</a></li><li><a href="/doc/solutions/Timers">Timers</a></li></ul></li><li class="expandable "><a href="/doc/solutions/Winform_Samples">Winform Samples</a><ul> <li><a href="/doc/solutions/Simple_Hello_world_form_sample">Simple Hello world form sample</a></li><li><a href="/doc/solutions/Message_Box">Message Box</a></li><li class="expandable "><a href="/doc/solutions/Menus">Menus</a><ul> <li><a href="/doc/solutions/Menu_Details">Menu Details</a></li></ul></li><li class="expandable "><a href="/doc/solutions/MDI">MDI</a><ul> <li><a href="/doc/solutions/MDI_Details">MDI Details</a></li></ul></li><li><a href="/doc/solutions/Calculator-_winform">Calculator: winform</a></li><li><a href="/doc/solutions/GDI_plus_-_text">GDI plus - text</a></li><li><a href="/doc/solutions/Date_Time_Picker">Date Time Picker</a></li><li><a href="/doc/solutions/Progress_bar_sample">Progress bar sample</a></li><li><a href="/doc/solutions/Simple_data_binding">Simple data binding</a></li><li><a href="/doc/solutions/Tree_view">Tree view</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Eiffel_for_ASP.NET_Documentation">Eiffel for ASP.NET Documentation</a><ul> <li class="expandable "><a href="/doc/solutions/Writing_ASP.NET_pages_in_Eiffel">Writing ASP.NET pages in Eiffel</a><ul> <li><a href="/doc/solutions/Eiffel_for_ASP.NET_Installation">Eiffel for ASP.NET Installation</a></li><li><a href="/doc/solutions/CodeDom-_Getting_Started">CodeDom: Getting Started</a></li><li><a href="/doc/solutions/Using_Eiffel_%28to_write_ASP.NET_pages%29">Using Eiffel (to write ASP.NET pages)</a></li><li><a href="/doc/solutions/Names_Mappings">Names Mappings</a></li></ul></li><li class="expandable "><a href="/doc/solutions/The_Eiffel_CodeDom_Provider">The Eiffel CodeDom Provider</a><ul> <li><a href="/doc/solutions/About_the_Code_Document_Object_Model_%28CodeDom%29">About the Code Document Object Model (CodeDom)</a></li><li><a href="/doc/solutions/Installation">Installation</a></li><li><a href="/doc/solutions/Supported_Constructs">Supported Constructs</a></li><li><a href="/doc/solutions/Configuration">Configuration</a></li><li><a href="/doc/solutions/Logging">Logging</a></li><li><a href="/doc/solutions/Required_Permissions">Required Permissions</a></li><li><a href="/doc/solutions/Common_Scenarios">Common Scenarios</a></li><li><a href="/doc/solutions/Eiffel_Implementation">Eiffel Implementation</a></li><li><a href="/doc/solutions/Limitations">Limitations</a></li></ul></li><li class="expandable "><a href="/doc/solutions/Eiffel_for_ASP.NET_Tools_and_Administration">Eiffel for ASP.NET Tools and Administration</a><ul> <li><a href="/doc/solutions/Eiffel_CodeDom_Provider_Manager">Eiffel CodeDom Provider Manager</a></li><li><a href="/doc/solutions/eSplitter">eSplitter</a></li><li><a href="/doc/solutions/Name_Mapper">Name Mapper</a></li></ul></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Basic_computing">Basic computing</a><ul> <li><a href="/doc/solutions/Process_and_BaseProcess">External processes</a></li><li class="expandable "><a href="/doc/solutions/EiffelBase">EiffelBase</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelBase_Tutorial">EiffelBase Tutorial</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelBase%2C_The_Kernel">EiffelBase, The Kernel</a><ul> <li><a href="/doc/solutions/Universal_class_and_its_features">Universal class and its features</a></li><li><a href="/doc/solutions/Language-related_facilities">Language-related facilities</a></li><li><a href="/doc/solutions/Files%2C_input%2C_output">Files, input, output</a></li><li><a href="/doc/solutions/Persistence%2C_storage%2C_and_retrieval">Persistence, storage, and retrieval</a></li><li><a href="/doc/solutions/Access_to_internal_properties">Access to internal properties</a></li></ul></li><li class="expandable "><a href="/doc/solutions/EiffelBase_Data_Structures_Overview">EiffelBase Data Structures Overview</a><ul> <li><a href="/doc/solutions/EiffelBase%2C_Abstract_Container_Structures-_The_Taxonomy">EiffelBase, Abstract Container Structures: The Taxonomy</a></li><li><a href="/doc/solutions/EiffelBase_Data_Structures%2C_Lists">EiffelBase Data Structures, Lists</a></li><li><a href="/doc/solutions/EiffelBase%2C_Dispensers">EiffelBase, Dispensers</a></li><li><a href="/doc/solutions/EiffelBase%2C_Trees">EiffelBase, Trees</a></li><li><a href="/doc/solutions/EiffelBase%2C_Sets">EiffelBase, Sets</a></li><li><a href="/doc/solutions/EiffelBase%2C_Tables">EiffelBase, Tables</a></li><li><a href="/doc/solutions/EiffelBase%2C_Iteration">EiffelBase, Iteration</a></li></ul></li><li><a href="/doc/solutions/EiffelBase_Support_Cluster">EiffelBase Support Cluster</a></li></ul></li><li><a href="/doc/solutions/EiffelBase_Class_Reference">EiffelBase Class Reference</a></li><li class="expandable "><a href="/doc/solutions/EiffelBase_Samples">EiffelBase Samples</a><ul> <li><a href="/doc/solutions/EiffelBase_Sample-_Calculator">EiffelBase Sample: Calculator</a></li></ul></li><li><a href="/doc/solutions/Eiffel_Software_Free_Eiffel_Library_License_%28IFELL%29">Free Eiffel Library License</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Graphics">Graphics</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelBuild">EiffelBuild</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelBuild_How_To%27s">EiffelBuild How To's</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelBuild-_Starting_a_project">EiffelBuild: Starting a project</a><ul> <li><a href="/doc/solutions/EiffelBuild-_Creating_a_new_project">EiffelBuild: Creating a new project</a></li><li><a href="/doc/solutions/Retrieving_a_project_from_a_Build_project_file">Retrieving a project from a Build project file</a></li></ul></li><li><a href="/doc/solutions/Create_an_object">Create an object</a></li><li><a href="/doc/solutions/Delete_an_object">Delete an object</a></li><li><a href="/doc/solutions/Save_a_project">Save a project</a></li><li><a href="/doc/solutions/Reparent_an_Object">Reparent an Object</a></li><li><a href="/doc/solutions/Import_a_project">Import a project</a></li></ul></li><li class="expandable "><a href="/doc/solutions/EiffelBuild_Reference">EiffelBuild Reference</a><ul> <li><a href="/doc/solutions/EiffelBuild_Notation">EiffelBuild Notation</a></li><li class="expandable "><a href="/doc/solutions/EiffelBuild-_General_interface_description">EiffelBuild: General interface description</a><ul> <li><a href="/doc/solutions/EiffelBuild_window_overview">EiffelBuild window overview</a></li><li><a href="/doc/solutions/Main_toolbar">Main toolbar</a></li><li><a href="/doc/solutions/EiffelBuild-_Key_shortcuts">EiffelBuild: Key shortcuts</a></li><li><a href="/doc/solutions/Docking">Docking</a></li></ul></li><li><a href="/doc/solutions/Layout_constructor">Layout constructor</a></li><li><a href="/doc/solutions/Type_selector">Type selector</a></li><li class="expandable "><a href="/doc/solutions/Object_editor">Object editor</a><ul> <li><a href="/doc/solutions/Merging_radio_button_groups">Merging radio button groups</a></li><li><a href="/doc/solutions/Positioning_table_children">Positioning table children</a></li><li><a href="/doc/solutions/Positioning_fixed_children">Positioning fixed children</a></li></ul></li><li><a href="/doc/solutions/Display_window">Display window</a></li><li><a href="/doc/solutions/Builder_window">Builder window</a></li><li><a href="/doc/solutions/Component_selector">Component selector</a></li><li><a href="/doc/solutions/Widget_selector">Widget selector</a></li><li><a href="/doc/solutions/Component_viewer">Component viewer</a></li><li><a href="/doc/solutions/History">History</a></li><li><a href="/doc/solutions/Constants">Constants</a></li><li class="expandable "><a href="/doc/solutions/EiffelBuild-_Project_settings_window">EiffelBuild: Project settings window</a><ul> <li><a href="/doc/solutions/Build_Tab">Build Tab</a></li><li><a href="/doc/solutions/Generation_Tab">Generation Tab</a></li></ul></li><li><a href="/doc/solutions/EiffelBuild_Preferences">EiffelBuild Preferences</a></li><li><a href="/doc/solutions/EiffelBuild-_Code_Generation">EiffelBuild: Code Generation</a></li></ul></li><li><a href="/doc/solutions/EiffelBuild_Version_History">EiffelBuild Version History</a></li></ul></li><li class="expandable "><a href="/doc/solutions/EiffelVision_2">EiffelVision 2</a><ul> <li><a href="/doc/solutions/EiffelVision_Introduction">EiffelVision Introduction</a></li><li class="expandable "><a href="/doc/solutions/Vison2_-_How-to">How to ...</a><ul> <li><a href="/doc/solutions/How_to_build_a_concurrent_graphical_application-_EiffelVision_with_SCOOP">How to build a concurrent graphical application: EiffelVision with SCOOP</a></li><li><a href="/doc/solutions/Triggering_Pick-and-Drop">Triggering PnD</a></li><li><a href="/doc/solutions/Converting_EiffelVision_2_Systems_to_Void-Safety">Converting EiffelVision 2 Systems to Void-Safety</a></li></ul></li><li class="expandable "><a href="/doc/solutions/EiffelVision_Library_Reference_Manual">EiffelVision Library Reference Manual</a><ul> <li><a href="/doc/solutions/Kernel">Kernel</a></li><li class="expandable "><a href="/doc/solutions/Widgets">Widgets</a><ul> <li><a href="/doc/solutions/Primitives">Primitives</a></li><li><a href="/doc/solutions/Containers">Containers</a></li><li><a href="/doc/solutions/EiffelVision_Dialogs">EiffelVision Dialogs</a></li></ul></li><li><a href="/doc/solutions/Items">Items</a></li><li><a href="/doc/solutions/Events">Events</a></li><li class="expandable "><a href="/doc/solutions/Properties">Properties</a><ul> <li><a href="/doc/solutions/EiffelVision_Pick_and_Drop">EiffelVision Pick and Drop</a></li></ul></li><li><a href="/doc/solutions/Support">Support</a></li><li><a href="/doc/solutions/Figures">Figures</a></li></ul></li><li><a href="/doc/solutions/EiffelVision_2_Class_Reference">EiffelVision 2 Class Reference</a></li><li class="expandable "><a href="/doc/solutions/EiffelVision_2_Samples">EiffelVision 2 Samples</a><ul> <li><a href="/doc/solutions/Widgets_Sample">Widgets Sample</a></li><li><a href="/doc/solutions/Accelerator_Sample">Accelerator Sample</a></li><li><a href="/doc/solutions/Cursor_Sample">Cursor Sample</a></li><li><a href="/doc/solutions/Gauges_Sample">Gauges Sample</a></li><li><a href="/doc/solutions/Standard_dialogs_Sample">Standard_dialogs Sample</a></li><li><a href="/doc/solutions/Viewport_Sample">Viewport Sample</a></li></ul></li><li><a href="/doc/solutions/Revisions_and_Bug_Fixes">Revisions and Bug Fixes</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Dates_and_times">Dates and times</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelTime">EiffelTime</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelTime_Tutorial">EiffelTime Tutorial</a><ul> <li><a href="/doc/solutions/Absolute_time">Absolute time</a></li><li><a href="/doc/solutions/Duration">Duration</a></li><li><a href="/doc/solutions/Interval">Interval</a></li><li><a href="/doc/solutions/DATE_TIME_to_STRING_Conversion">DATE TIME to STRING Conversion</a></li><li><a href="/doc/solutions/More_precision">More precision</a></li></ul></li><li><a href="/doc/solutions/EiffelTime_Class_Reference">EiffelTime Class Reference</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Including_other_languages">With other languages</a><ul> <li class="expandable "><a href="/doc/solutions/Eiffel_%22external%22_mechanism">Eiffel "external" mechanism</a><ul> <li><a href="/doc/solutions/Interfacing_with_C_and_C%2B%2B">Interfacing with C and C++</a></li><li><a href="/doc/solutions/Interfacing_with_DLLs">Interfacing with DLLs</a></li><li class="expandable "><a href="/doc/solutions/Obsolete_%22external%22_interfaces">Obsolete "external" interfaces</a><ul> <li><a href="/doc/solutions/C_externals">C externals</a></li><li><a href="/doc/solutions/C%2B%2B_Externals">C++ Externals</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/CECIL">CECIL</a><ul> <li><a href="/doc/solutions/Compiling_an_Eiffel_system_for_CECIL">Compiling an Eiffel system for CECIL</a></li><li><a href="/doc/solutions/Using_a_CECIL_archive">Using a CECIL archive</a></li><li><a href="/doc/solutions/CECIL_interface_overview">CECIL interface overview</a></li><li class="expandable "><a href="/doc/solutions/CECIL_Reference">CECIL Reference</a><ul> <li><a href="/doc/solutions/attribute_exists">attribute_exists</a></li><li><a href="/doc/solutions/eif_access">eif_access</a></li><li><a href="/doc/solutions/eif_adopt">eif_adopt</a></li><li><a href="/doc/solutions/eif_attribute">eif_attribute</a></li><li><a href="/doc/solutions/eif_attribute_type">eif_attribute_type</a></li><li><a href="/doc/solutions/eif_create">eif_create</a></li><li><a href="/doc/solutions/eif_disable_visible_exception">eif_disable_visible_exception</a></li><li><a href="/doc/solutions/eif_enable_visible_exception">eif_enable_visible_exception</a></li><li><a href="/doc/solutions/eif_name">eif_name</a></li><li><a href="/doc/solutions/eif_name_by_tid">eif_name_by_tid</a></li><li><a href="/doc/solutions/eif_procedure">eif_procedure</a></li><li><a href="/doc/solutions/eif_protect">eif_protect</a></li><li><a href="/doc/solutions/eif_string">eif_string</a></li><li><a href="/doc/solutions/eif_type">eif_type</a></li><li><a href="/doc/solutions/eif_type_by_name">eif_type_by_name</a></li><li><a href="/doc/solutions/eif_type_by_reference">eif_type_by_reference</a></li><li><a href="/doc/solutions/eif_type_id">eif_type_id</a></li><li><a href="/doc/solutions/eif_wean">eif_wean</a></li><li><a href="/doc/solutions/eif_%2A_function">eif_*_function</a></li></ul></li><li class="expandable "><a href="/doc/solutions/CECIL_samples">CECIL samples</a><ul> <li><a href="/doc/solutions/CECIL_-_C_to_Eiffel">CECIL - C to Eiffel</a></li><li><a href="/doc/solutions/CECIL_-_Eiffel_to_C">CECIL - Eiffel to C</a></li><li><a href="/doc/solutions/CECIL_-_Basic_sample">CECIL - Basic sample</a></li><li><a href="/doc/solutions/CECIL_-_Threads">CECIL - Threads</a></li><li><a href="/doc/solutions/CECIL_-_How_to_compile_the_samples%3F">CECIL - How to compile the samples?</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Eiffel2Java">Eiffel2Java</a><ul> <li><a href="/doc/solutions/Eiffel2Java_Tutorial">Eiffel2Java Tutorial</a></li><li><a href="/doc/solutions/Eiffel2Java_class_reference">Eiffel2Java class reference</a></li><li><a href="/doc/solutions/Eiffel2Java_Sample">Eiffel2Java Sample</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Porting_instructions">Porting instructions</a><ul> <li><a href="/doc/solutions/Porting_an_Eiffel_application_from_UNIX_to_Windows_or_vice-versa">Porting an Eiffel application from UNIX to Windows or vice-versa</a></li></ul></li><li class="expandable "><a href="/doc/solutions/Concurrency">Concurrency</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelThreads">EiffelThreads</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelThread_Tutorial">EiffelThread Tutorial</a><ul> <li><a href="/doc/solutions/Thread_library_overview">Thread library overview</a></li><li><a href="/doc/solutions/Compilation_of_multithreaded_systems">Compilation of multithreaded systems</a></li><li><a href="/doc/solutions/Once_features_in_multithreaded_mode">Once features in multithreaded mode</a></li><li><a href="/doc/solutions/Multithread_FAQ">Multithread FAQ</a></li></ul></li><li><a href="/doc/solutions/EiffelThread_Class_Reference">EiffelThread Class Reference</a></li></ul></li><li><a href="/doc/solutions/SCOOP_tutorial">SCOOP Tutorial (hands-on): a small concurrent email system</a></li><li class="expandable "><a href="/doc/solutions/Concurrent_programming_with_SCOOP">SCOOP</a><ul> <li><a href="/doc/solutions/Getting_Started_with_SCOOP">Getting Started</a></li><li><a href="/doc/solutions/Regions_and_Processors">Regions and Processors</a></li><li><a href="/doc/solutions/Separate_Calls">Separate Calls</a></li><li><a href="/doc/solutions/Exclusive_Access">Exclusive Access</a></li><li><a href="/doc/solutions/Design_by_Contract_in_SCOOP">Design by Contract</a></li><li><a href="/doc/solutions/Asynchronous_Calls">Asynchronous Calls</a></li><li><a href="/doc/solutions/Exceptions_in_SCOOP">Exceptions</a></li><li class="expandable "><a href="/doc/solutions/SCOOP_examples">SCOOP examples</a><ul> <li><a href="/doc/solutions/Single-element_producer-consumer">Single-element producer-consumer</a></li><li><a href="/doc/solutions/Counter">Counter</a></li><li><a href="/doc/solutions/Producer-consumer">Producer-consumer</a></li><li><a href="/doc/solutions/Dining_philosophers">Dining philosophers</a></li><li><a href="/doc/solutions/Barbershop">Barbershop</a></li><li><a href="/doc/solutions/Baboon_crossing">Baboon crossing</a></li><li><a href="/doc/solutions/Search-insert-delete">Search-insert-delete</a></li><li><a href="/doc/solutions/Senate_bus">Senate bus</a></li><li><a href="/doc/solutions/Quicksort">Quicksort</a></li><li><a href="/doc/solutions/Dining_savages">Dining savages</a></li><li><a href="/doc/solutions/Faneuil_Hall">Faneuil Hall</a></li><li><a href="/doc/solutions/Observer_pattern">Observer pattern</a></li></ul></li><li><a href="/doc/solutions/SCOOP_implementation">SCOOP implementation</a></li><li><a href="/doc/solutions/SCOOP_papers">papers</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Networking">Networking</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelNet">EiffelNet</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelNet_Tutorial">EiffelNet Tutorial</a><ul> <li><a href="/doc/solutions/What_is_EiffelNet">What is EiffelNet</a></li><li><a href="/doc/solutions/Clients_and_servers">Clients and servers</a></li><li><a href="/doc/solutions/An_overview_of_EiffelNet_Mechanisms">An overview of EiffelNet Mechanisms</a></li><li><a href="/doc/solutions/Introduction_to_the_examples">Introduction to the examples</a></li><li><a href="/doc/solutions/Obtaining_a_finer_degree_of_control">Obtaining a finer degree of control</a></li><li><a href="/doc/solutions/Using_datagram_sockets">Using datagram sockets</a></li><li><a href="/doc/solutions/Event-driven_command_execution">Event-driven command execution</a></li><li><a href="/doc/solutions/A_more_complex_example">A more complex example</a></li><li><a href="/doc/solutions/Bibliography">Bibliography</a></li></ul></li><li><a href="/doc/solutions/EiffelNet_Class_Reference">EiffelNet Class Reference</a></li><li class="expandable "><a href="/doc/solutions/EiffelNet_Samples">EiffelNet Samples</a><ul> <li><a href="/doc/solutions/Advanced">Advanced</a></li><li><a href="/doc/solutions/Polling">Polling</a></li><li><a href="/doc/solutions/Predef">Predef</a></li><li><a href="/doc/solutions/Same_Machine">Same Machine</a></li><li><a href="/doc/solutions/Two_Machines">Two Machines</a></li></ul></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Database_access">Database access</a><ul> <li class="expandable "><a href="/doc/solutions/ABEL">ABEL</a><ul> <li class="expandable "><a href="/doc/solutions/Tutorial">Tutorial</a><ul> <li><a href="/doc/solutions/Getting_started">Getting started</a></li><li><a href="/doc/solutions/Basic_operations">Basic operations</a></li><li><a href="/doc/solutions/Advanced_Queries">Advanced Queries</a></li><li><a href="/doc/solutions/Dealing_with_references">Dealing with references</a></li><li><a href="/doc/solutions/Tuple_queries">Tuple queries</a></li><li><a href="/doc/solutions/Error_handling">Error handling</a></li><li><a href="/doc/solutions/Accessing_an_existing_database">Accessing an existing database</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/EiffelStore">EiffelStore</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelStore_Tutorial">EiffelStore Tutorial</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelStore_Interface_Layer">EiffelStore Interface Layer</a><ul> <li><a href="/doc/solutions/Database_Connection">Database Connection</a></li><li><a href="/doc/solutions/Data_Modification">Data Modification</a></li><li><a href="/doc/solutions/Database_Selection">Database Selection</a></li><li><a href="/doc/solutions/Selection_Access">Selection Access</a></li><li><a href="/doc/solutions/Data_Object_Coupling">Data Object Coupling</a></li><li><a href="/doc/solutions/Query_variables">Query variables</a></li><li><a href="/doc/solutions/Stored_Procedures">Stored Procedures</a></li><li><a href="/doc/solutions/Database_control">Database control</a></li></ul></li><li><a href="/doc/solutions/EiffelStore_Implementation_Layer">EiffelStore Implementation Layer</a></li><li class="expandable "><a href="/doc/solutions/EiffelStore_Generation_Cluster">EiffelStore Generation Cluster</a><ul> <li><a href="/doc/solutions/Data_structures_use">Data structures use</a></li><li><a href="/doc/solutions/Data_structures_creation">Data structures creation</a></li></ul></li><li><a href="/doc/solutions/EiffelStore_DataView_Cluster">EiffelStore DataView Cluster</a></li></ul></li><li><a href="/doc/solutions/EiffelStore_Class_Reference">EiffelStore Class Reference</a></li><li class="expandable "><a href="/doc/solutions/EiffelStore_Samples">EiffelStore Samples</a><ul> <li><a href="/doc/solutions/Esql_Sample">Esql Sample</a></li><li><a href="/doc/solutions/Selector_Sample">Selector Sample</a></li><li><a href="/doc/solutions/Inserter_Sample">Inserter Sample</a></li></ul></li><li><a href="/doc/solutions/Defending_against_SQL_injections_with_EiffelStore">SQL injection</a></li><li><a href="/doc/solutions/EiffelStore_ODBC_with_PostgreSQL">EiffelStore ODBC</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Web_technology">Web technology</a><ul> <li><a href="/doc/solutions/EiffelWeb_framework">EiffelWeb</a></li><li class="expandable "><a href="/doc/solutions/Obsolete_EiffelWeb">Obsolete EiffelWeb</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelWeb_Tutorial">EiffelWeb Tutorial</a><ul> <li><a href="/doc/solutions/EiffelWeb_Content_Introduction">EiffelWeb Content Introduction</a></li><li><a href="/doc/solutions/Processing_Requests">Processing Requests</a></li></ul></li><li><a href="/doc/solutions/EiffelWeb_Class_Reference">EiffelWeb Class Reference</a></li><li class="expandable "><a href="/doc/solutions/EiffelWeb_Sample">EiffelWeb Sample</a><ul> <li><a href="/doc/solutions/EiffelWeb_Basic_Sample">EiffelWeb Basic Sample</a></li></ul></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Text_processing">Text processing</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelLex">EiffelLex</a><ul> <li><a href="/doc/solutions/EiffelLex_Tutorial">EiffelLex Tutorial</a></li><li><a href="/doc/solutions/EiffelLex_Class_Reference">EiffelLex Class Reference</a></li><li class="expandable "><a href="/doc/solutions/EiffelLex_Sample">EiffelLex Sample</a><ul> <li class="expandable "><a href="/doc/solutions/Eiffel_scanner">Eiffel scanner</a><ul> <li><a href="/doc/solutions/EiffelLex_Samples">EiffelLex Samples</a></li><li><a href="/doc/solutions/EIFFEL_SCAN_Text">EIFFEL_SCAN Text</a></li><li><a href="/doc/solutions/eiffel_scan_console_input">eiffel_scan console input</a></li><li><a href="/doc/solutions/eiffel_scan_console_output">eiffel_scan console output</a></li></ul></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/EiffelParse">EiffelParse</a><ul> <li><a href="/doc/solutions/EiffelParse_Tutorial">EiffelParse Tutorial</a></li><li><a href="/doc/solutions/EiffelParse_Class_Reference">EiffelParse Class Reference</a></li><li class="expandable "><a href="/doc/solutions/Parse_Sample">Parse Sample</a><ul> <li><a href="/doc/solutions/Eiffel_polynomial_parser">Eiffel polynomial parser</a></li></ul></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Preferences">Preferences</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelPreferences">EiffelPreferences</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelPreferences_Tutorial">EiffelPreferences Tutorial</a><ul> <li><a href="/doc/solutions/Overview">Overview</a></li><li><a href="/doc/solutions/Initialization">Initialization</a></li><li><a href="/doc/solutions/Interface_for_preferences">Interface for preferences</a></li></ul></li><li><a href="/doc/solutions/EiffelPreferences_Class_Reference">EiffelPreferences Class Reference</a></li><li><a href="/doc/solutions/EiffelPreferences_Sample">EiffelPreferences Sample</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/Platform_specifics">Platform specifics</a><ul> <li class="expandable "><a href="/doc/solutions/Microsoft_Windows">Microsoft Windows</a><ul> <li class="expandable "><a href="/doc/solutions/WEL">WEL</a><ul> <li class="expandable "><a href="/doc/solutions/WEL_Common_Concepts">WEL Common Concepts</a><ul> <li><a href="/doc/solutions/Inheriting_WEL_APPLICATION">Inheriting WEL_APPLICATION</a></li><li><a href="/doc/solutions/Redefining_main_window">Redefining main_window</a></li><li><a href="/doc/solutions/Redefining_%60init_application%27">Redefining `init_application'</a></li><li><a href="/doc/solutions/Common_message_hooks">Common message hooks</a></li></ul></li><li class="expandable "><a href="/doc/solutions/WEL_Interface_Content">WEL Interface Content</a><ul> <li><a href="/doc/solutions/windows_cluster">windows cluster</a></li><li class="expandable "><a href="/doc/solutions/controls_cluster">controls cluster</a><ul> <li><a href="/doc/solutions/WEL_CHECKBOX">WEL_CHECKBOX</a></li><li><a href="/doc/solutions/WEL_CHECK_BOX_3_STATE">WEL_CHECK_BOX_3_STATE</a></li><li><a href="/doc/solutions/WEL_GROUP_BOX">WEL_GROUP_BOX</a></li><li><a href="/doc/solutions/WEL_LIST_VIEW">WEL_LIST_VIEW</a></li><li><a href="/doc/solutions/WEL_MULTIPLE_LINE_EDIT">WEL_MULTIPLE_LINE_EDIT</a></li><li><a href="/doc/solutions/WEL_MULTIPLE_SELECTION_LIST_BOX">WEL_MULTIPLE_SELECTION_LIST_BOX</a></li><li><a href="/doc/solutions/WEL_OWNER_DRAW_BUTTON">WEL_OWNER_DRAW_BUTTON</a></li><li><a href="/doc/solutions/WEL_PROGRESS_BAR">WEL_PROGRESS_BAR</a></li><li><a href="/doc/solutions/WEL_PUSH_BUTTON">WEL_PUSH_BUTTON</a></li><li><a href="/doc/solutions/WEL_RADIO_BUTTON">WEL_RADIO_BUTTON</a></li><li><a href="/doc/solutions/WEL_SCROLL_BAR">WEL_SCROLL_BAR</a></li><li><a href="/doc/solutions/WEL_SINGLE_LINE_EDIT">WEL_SINGLE_LINE_EDIT</a></li><li><a href="/doc/solutions/WEL_SINGLE_SELECTION_LIST_BOX">WEL_SINGLE_SELECTION_LIST_BOX</a></li><li><a href="/doc/solutions/WEL_TOOLTIP">WEL_TOOLTIP</a></li><li><a href="/doc/solutions/WEL_TRACK_BAR">WEL_TRACK_BAR</a></li><li><a href="/doc/solutions/WEL_UP_DOWN_CONTROL">WEL_UP_DOWN_CONTROL</a></li></ul></li><li class="expandable "><a href="/doc/solutions/stddlgs_cluster">stddlgs cluster</a><ul> <li><a href="/doc/solutions/WEL_CHOOSE_COLOR_DIALOG">WEL_CHOOSE_COLOR_DIALOG</a></li><li><a href="/doc/solutions/WEL_CHOOSE_FOLDER_DIALOG">WEL_CHOOSE_FOLDER_DIALOG</a></li><li><a href="/doc/solutions/WEL_CHOOSE_FONT_DIALOG">WEL_CHOOSE_FONT_DIALOG</a></li><li><a href="/doc/solutions/WEL_OPEN_FILE_DIALOG">WEL_OPEN_FILE_DIALOG</a></li><li><a href="/doc/solutions/WEL_PRINT_DIALOG">WEL_PRINT_DIALOG</a></li><li><a href="/doc/solutions/WEL_SAVE_FILE_DIALOG">WEL_SAVE_FILE_DIALOG</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/WEL_Tutorial">WEL Tutorial</a><ul> <li><a href="/doc/solutions/Tutorial_Step_1">Tutorial Step 1</a></li><li><a href="/doc/solutions/Tutorial_Step_2">Tutorial Step 2</a></li><li><a href="/doc/solutions/Tutorial_Step_3">Tutorial Step 3</a></li><li><a href="/doc/solutions/Tutorial_Step_4">Tutorial Step 4</a></li><li><a href="/doc/solutions/Tutorial_Step_5">Tutorial Step 5</a></li><li><a href="/doc/solutions/Tutorial_Step_6">Tutorial Step 6</a></li><li><a href="/doc/solutions/Tutorial_Step_7">Tutorial Step 7</a></li><li><a href="/doc/solutions/Tutorial_Step_8">Tutorial Step 8</a></li></ul></li><li><a href="/doc/solutions/WEL_Class_Reference">WEL Class Reference</a></li><li class="expandable "><a href="/doc/solutions/WEL_Samples">WEL Samples</a><ul> <li><a href="/doc/solutions/Bmpview">Bmpview</a></li><li><a href="/doc/solutions/Brushes">Brushes</a></li><li><a href="/doc/solutions/Common_Controls">Common Controls</a></li><li><a href="/doc/solutions/Commands">Commands</a></li><li><a href="/doc/solutions/Controls_Sample">Controls Sample</a></li><li><a href="/doc/solutions/Ctlcolor">Ctlcolor</a></li><li><a href="/doc/solutions/Cursors">Cursors</a></li><li><a href="/doc/solutions/Disk_Space">Disk Space</a></li><li><a href="/doc/solutions/Fontenum">Fontenum</a></li><li><a href="/doc/solutions/Fun">Fun</a></li><li><a href="/doc/solutions/Header_Control">Header Control</a></li><li><a href="/doc/solutions/Hello_World%21">Hello World!</a></li><li><a href="/doc/solutions/List_View">List View</a></li><li><a href="/doc/solutions/Magnify">Magnify</a></li><li><a href="/doc/solutions/MDI_%28Multiple_Document_Interface%29">MDI (Multiple Document Interface)</a></li><li><a href="/doc/solutions/Wel_Sample-_Menus">Wel Sample: Menus</a></li><li><a href="/doc/solutions/Minimal">Minimal</a></li><li><a href="/doc/solutions/Pizza">Pizza</a></li><li><a href="/doc/solutions/Printer">Printer</a></li><li><a href="/doc/solutions/Rich_Edit">Rich Edit</a></li><li><a href="/doc/solutions/Split_Area">Split Area</a></li><li><a href="/doc/solutions/Standard_Dialogs_Sample">Standard Dialogs Sample</a></li><li><a href="/doc/solutions/Timer">Timer</a></li><li><a href="/doc/solutions/Tree_View_Sample">Tree View Sample</a></li><li><a href="/doc/solutions/Unicode_Sample">Unicode Sample</a></li><li><a href="/doc/solutions/Windows_Sample">Windows Sample</a></li><li><a href="/doc/solutions/Xcell">Xcell</a></li><li><a href="/doc/solutions/XY_Co-ordinates">XY Co-ordinates</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/COM">COM</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelCOM_Wizard">EiffelCOM Wizard</a><ul> <li class="expandable "><a href="/doc/solutions/COM_and_Eiffel">COM and Eiffel</a><ul> <li><a href="/doc/solutions/EiffelCOM-_Introduction">EiffelCOM: Introduction</a></li><li><a href="/doc/solutions/COM_Concepts">COM Concepts</a></li><li><a href="/doc/solutions/COM_Interfaces">COM Interfaces</a></li><li><a href="/doc/solutions/Coclass">Coclass</a></li><li><a href="/doc/solutions/The_Component_Location">The Component Location</a></li><li><a href="/doc/solutions/Access_Type">Access Type</a></li><li><a href="/doc/solutions/Deeper_into_COM">Deeper into COM</a></li></ul></li><li><a href="/doc/solutions/EiffelCOM_Wizard_Introduction">EiffelCOM Wizard Introduction</a></li><li class="expandable "><a href="/doc/solutions/EiffelCOM_Wizard_Guided_Tour">EiffelCOM Wizard Guided Tour</a><ul> <li><a href="/doc/solutions/Creating_a_New_COM_Component">Creating a New COM Component</a></li><li><a href="/doc/solutions/Creating_a_new_component_from_an_Eiffel_project">Creating a new component from an Eiffel project</a></li><li><a href="/doc/solutions/Accessing_a_COM_Component">Accessing a COM Component</a></li></ul></li><li class="expandable "><a href="/doc/solutions/EiffelCOM_Wizard_Reference">EiffelCOM Wizard Reference</a><ul> <li><a href="/doc/solutions/How_the_EiffelCOM_Wizard_works">How the EiffelCOM Wizard works</a></li><li><a href="/doc/solutions/Generated_Files">Generated Files</a></li><li><a href="/doc/solutions/Class_Hierarchy">Class Hierarchy</a></li><li><a href="/doc/solutions/Eiffel_Project_Processing">Eiffel Project Processing</a></li><li><a href="/doc/solutions/Reusing_a_COM_Component">Reusing a COM Component</a></li><li><a href="/doc/solutions/Building_a_COM_Component">Building a COM Component</a></li><li><a href="/doc/solutions/Wizards-_Command_Line_Options">Wizards: Command Line Options</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/EiffelCOM_Library">EiffelCOM Library</a><ul> <li class="expandable "><a href="/doc/solutions/EiffelCOM_Interface_Content">EiffelCOM Interface Content</a><ul> <li><a href="/doc/solutions/Interfaces">Interfaces</a></li><li><a href="/doc/solutions/Structures">Structures</a></li></ul></li><li><a href="/doc/solutions/EiffelCOM_Class_Reference">EiffelCOM Class Reference</a></li></ul></li></ul></li><li class="expandable "><a href="/doc/solutions/ResourceBench">ResourceBench</a><ul> <li><a href="/doc/solutions/Features">Features</a></li><li><a href="/doc/solutions/Tour">Tour</a></li><li><a href="/doc/solutions/Troubleshooting">Troubleshooting</a></li></ul></li><li class="expandable "><a href="/doc/solutions/EiffelRibbon">EiffelRibbon</a><ul> <li><a href="/doc/solutions/EiffelRibbon_Design_Tool">EiffelRibbon Design Tool</a></li></ul></li></ul></li></ul></li></ul></li><li><a href="/doc/glossary/Glossary">Glossary</a></li><li><a href="/doc/faq/FAQ">FAQ</a></li><li class="expandable "><a href="/doc/contribute/How_to_contribute">Contribute</a><ul> <li><a href="/doc/contribute/How_to_contribute_to_documentation">To documentation</a></li><li><a href="/doc/contribute/Help_to_edit_documentation">Editing help</a></li></ul></li></ul> </div></div></div></div> </aside> <div class="content"> <header class="head"> <div id="breadcrumb"> <span class="ico"><img src="/theme/responsive-eiffel-org/images/ico-document.png" width="21" height="21" alt="Documentation"></span> <a href="https://www.eiffel.org/doc/eiffelstudio">eiffelstudio</a> :: Starting To Browse </div> </header> <div><div class="wdocs-versions">Version<ul><li class="active"><a href="/doc/eiffelstudio/Starting_To_Browse">25.02 (released) ...</a><ul class="popup-menu"><li><a href="/doc/version/trunk/eiffelstudio/Starting_To_Browse">trunk (trunk)</a></li><li class="active"><a href="/doc/eiffelstudio/Starting_To_Browse">25.02 (released)</a></li><li><a href="/doc/version/24.05/eiffelstudio/Starting_To_Browse">24.05</a></li><li><a href="/doc/version/23.09/eiffelstudio/Starting_To_Browse">23.09</a></li><li><a href="/doc/version/22.12/eiffelstudio/Starting_To_Browse">22.12</a></li></ul></li></ul></div> <div class="wikipage"><h1 class="wikititle">Starting To Browse</h1> <div class="wiki-toc wiki-toc-auto"> <ol><a id="toc"></a><span class="title">Contents</span> <li><a href="#Browsing_style">Browsing style</a></li> <li><a href="#A_Development_Window">A Development Window</a></li> <li><a href="#Retargeting_by_name">Retargeting by name</a></li> <li><a href="#Retargeting_from_the_Groups_tool">Retargeting from the Groups tool</a></li> <li><a href="#Moving_back_and_forth">Moving back and forth</a></li> <li><a href="#The_Target_History">The Target History</a></li> <li><a href="#Adding_to_Favorites">Adding to Favorites</a></li> <li><a href="#Using_additional_Editing_tool_tabs">Using additional Editing tool tabs</a></li> <li><a href="#Using_additional_Development_Windows">Using additional Development Windows</a></li> </ol> </div> <p>It was important to take a look at how EiffelStudio stores your project, but unless your idea of fun is to poke around directories to look at compiler-generated files that's not really the exciting part yet. Among the most innovative aspects of EiffelStudio is a unique set of facilities to "browse" through a software system. </p> <a id="Browsing_style"></a><h2>Browsing style</h2> <p>Browsing -- traversing the structure -- is particularly important in object-oriented development and especially in Eiffel because of the speed at which you can construct sophisticated class structures, making use of inheritance, genericity, the client relation and information hiding, and subjecting features to all kinds of adaptations -- renaming, redefinition, undefinition, effecting -- that are key to the expressive power of the software, but call for smart tools to keep track of what's going on. EiffelStudio's tools are second to none. Among their key properties: </p> <ul><li> You can choose many different ways of browsing: sometimes you know the <em>name</em> of a class or feature, and will get to it just by typing it; sometimes you want to traverse the system through its cluster-subcluster <em>structure</em>; often, you see a reference to element (class or feature) in the text of another element, and just want to get to it by following that reference, like a <em>hyperlink</em>. You'll be able to use all these techniques, and alternate freely between them. </li> <li> The browsing facilities are always available. There is no "browser" in EiffelStudio; you just browse when you want to, by looking at the information you need. You can do this while editing, debugging, or performing any other of the analysis, design, implementation, extension and maintenance tasks of system construction. </li> <li> Although classes are stored in files and clusters in directories, you can for the most part forget about the file system. Unlike most environments, which let you manipulate files containing software texts, EiffelStudio lets you concentrate on your <span>development objects</span> -- the units that make sense for you: features, classes, clusters, systems. You think in terms of those conceptual units, and don't have to worry about where they are stored. Most of the time, you'll just forget about files and directories. </li> <li> You can produce many views of the development objects. For a class, you may see the full text, the interface only, the inheritance structure, the clients, the features, and many other views. You can even display <span>graphical</span> views along with textual ones. All these are fully browsable; you can go from one to the other as you please. </li> </ul> <a id="A_Development_Window"></a><h2>A Development Window</h2> <p>Let's see how this works. First, take a look at the EiffelStudio window:</p> <p><a href="/doc-image/es gt a development window 01"><img src="/doc-image/eiffelstudio/_images/es_gt_a_development_window_01a_0.png" border="0"/></a></p> <p><p class="tpl note-message"><a href="/doc-image/LogoInformation"><img src="/doc-image/25.02/_images/tpl_Information.png" border="0" width="24" alt=""/></a> <strong>Note: </strong>If some parts are too small, just resize the window to arrive at something like what's on the figure. As soon as you have resized it, EiffelStudio will remember that size, and start up in the next session with the size you've set.</p> </p> <p>You can see that the bulk of the Development Window is divided into three primary panes or areas. The <a href="/doc/eiffelstudio/EiffelStudio_Editor" class="wiki_link"><strong>Editing</strong></a> tool is the large pane on the top left. The Editing tool supports a tabbed display of the elements in your system ... usually that's class text, and it's in the Editing tool that you make changes to your software. In the image above, it is targeted to the root cluster of our example system. We'll target the Editing tool to a class in a moment. The other two areas support multiple tools, also using a tabbed display. In the area below the Editing tool you see the <strong>Outputs</strong> tool currently selected. As you can see there are other tools represented by the tabs at the bottom of the same area. Likewise, the area to the right of the Editing tool shows the <strong>Groups</strong> tool selected, but in that area are also tabs for other tools. You will find that the layout of the Development Window is very flexible. Different tools can be made visible or hidden, panes can be removed, new panes created, tools can be docked in these areas or viewed as standalone windows. The appearance of EiffelStudio can be tailored to your needs and preferences. </p> <p>So far we have talked about "the EiffelStudio window", but in fact that's not correct. What you see is one <strong>Development Window</strong>, of which you can have as many as you wish. Some people prefer to use a single development tool, avoiding screen clutter; others don't think twice about having lots of windows, taking the "desktop metaphor" to its full conclusion (some non-computer desktops are quite cluttered). There are many ways to start a new Development Window; for example if you look at the entries in the <code class="inline">File</code> menu at the top left -- don't select any of these entries yet, just look -- you'll see, among others, <code class="inline">New window</code>, which would create a new Development Window. </p> <p>Whether you have one Development Window or many, each may have as its <strong>target</strong> an element of the system: system, cluster, class (the most common case), feature, run-time object. This simply means that the tool displays information about that element. </p> <a id="Retargeting_by_name"></a><h2>Retargeting by name</h2> <p>In our first look at the Development Window, the Editing tool was empty. To target it to a specific class, you can just type the class name -- if you know it -- into the <strong>Class field</strong> at the top left:</p> <p><a href="/doc-image/es gt class field 01"><img src="/doc-image/eiffelstudio/_images/es_gt_class_field_01.png" border="0"/></a></p> <p>Let's use one of the most basic classes, <code class="inline">STRING_32</code> from the Kernel Library of EiffelBase. Bring the cursor to the Class Field, click to make it active, type <code class="inline">string_32</code> (or <code class="inline">STRING_32</code> ) and the Enter key. As shown on the next figure, this causes a new tab to be created in the Editing tool and retargets the Development Window to class <code class="inline">STRING_32</code>. Note that you didn't have to worry about where the class resides in the files of your computer. Also, it doesn't matter, when you enter the name into the field, whether you use lower or upper case, or some mix; EiffelStudio will show the name in all upper case because that is the standard Eiffel convention for class names. </p> <p><a href="/doc-image/es gt string 01"><img src="/doc-image/eiffelstudio/_images/es_gt_string_01.png" border="0"/></a></p> <p>Retargeting by name is only one way to retarget a Development Window. There are other ways of retargeting that are useful at different times. Let's look at some of them.</p> <a id="Retargeting_from_the_Groups_tool"></a><h2>Retargeting from the Groups tool</h2> <p>Your first browsing action used a class of which you knew the name, <code class="inline">STRING</code>. What if you don't know what's in the system and want to explore it? Among other techniques, you can let the Groups tool, guide you through the classes that are available to your system.</p> <p>An Eiffel system, as you know, is organized into clusters and libraries (and assemblies on some .NET systems). Additionally, clusters can be structured hierarchically into subclusters. You can expand the clusters and libraries nodes in the Groups tool (by clicking the little <code class="inline">+</code> signs to the left of the node icons) in order to see the classes. Try it, and what you see should look about like the following figure:</p> <p><a href="/doc-image/es gt groups tool 01"><img src="/doc-image/eiffelstudio/_images/es_gt_groups_tool_01.png" border="0"/></a></p> <p>You'll see one cluster: <code class="inline">root_cluster</code>, containing the few classes specific to our Guided Tour system. Under libraries you'll see <code class="inline">base</code> which provides the classes of the EiffelBase library, and <code class="inline">base_precompile</code> which does not provide any classes directly (precompiles are present to speed up compilation time by precompiling classes, so <code class="inline">base_precompile</code> is just a precompiled version of the contents of the EiffelBase library). Let's go into <code class="inline">base</code>, Eiffel Software's open-source library of fundamental reusable mechanisms. </p> <p>The most extensive subcluster of the EiffelBase library is <code class="inline">structures</code>, which contains implementations of major data structures and algorithms of computing science. Expand <code class="inline">structures</code> to see its own subclusters: </p> <p><a href="/doc-image/es gt groups tool 02"><img src="/doc-image/eiffelstudio/_images/es_gt_groups_tool_02.png" border="0"/></a></p> <p><p class="tpl note-message"><a href="/doc-image/LogoInformation"><img src="/doc-image/25.02/_images/tpl_Information.png" border="0" width="24" alt=""/></a> <strong>Note: </strong>If you initially don't see as many details as shown on this figure, you may get them by resizing the window, moving the vertical pane boundary, and/or scrolling.</p> </p> <p>The EiffelBase Data Structure library and its subclusters are described in the book <a href="/doc/eiffel/Reusable_Software-_The_Base_Object-Oriented_Component_Libraries" class="wiki_link">"Reusable Software: The Base Object-Oriented Component Libraries" </a> . Let's go to one of the most frequently used subclusters, <code class="inline">list</code>, containing implementations of list structures. Expand the subcluster <code class="inline">list</code>. This time, since list is a terminal cluster, it's not subclusters you'll see, but <strong>classes</strong>, identified by small ellipses (<a href="/doc-image/class-normal-icon"><img src="/doc-image/eiffelstudio/_images/class-normal-icon.png" border="0"/></a>): </p> <p><a href="/doc-image/es gt groups tool 03"><img src="/doc-image/eiffelstudio/_images/es_gt_groups_tool_03.png" border="0"/></a></p> <p>The ellipse, or "bubble", is indeed throughout EiffelStudio, as in the Business Object Notation (BON, the underlying graphical convention), the distinctive symbol for classes. You will notice that instead of the bubble, some classes are represented by what we call the "expanded" icon (<a href="/doc-image/expanded-normal-icon"><img src="/doc-image/eiffelstudio/_images/expanded-normal-icon.png" border="0"/></a> ). These are still Eiffel classes. They are represented this way to show that they are marked as <a href="/doc/eiffel/I2E-_Types" class="wiki_link">expanded</a>. Still other classes have a modified bubble ( <a href="/doc-image/class-deferred-icon"><img src="/doc-image/eiffelstudio/_images/class-deferred-icon.png" border="0"/></a> ) indicating that they are marked as <a href="/doc/eiffel/ET-_Inheritance#Deferred_features_and_classes" class="wiki_link">deferred</a>. </p> <p>Our second technique for retargeting a Development Window to a class (other than typing the class name as we did before) is to click the class in the Groups tool. Do this now: click <code class="inline">LIST</code> in the tree. It doesn't matter whether you click on the class name or the adjacent bubble. This retargets the tool to class <code class="inline">LIST</code>. </p> <p><a href="/doc-image/es gt Development Window targeted to list 01"><img src="/doc-image/eiffelstudio/_images/es_gt_development_window_targeted_to_list_01.png" border="0"/></a></p> <p>As the tool is now targeted to <code class="inline">LIST</code>, the Class Field at the top left now shows the name of that class, exactly as if we had typed that name, the way we did with <code class="inline">STRING_32</code> in the previous method of retargeting. </p> <a id="Moving_back_and_forth"></a><h2>Moving back and forth</h2> <p>Here now is a third way to retarget. Towards the top-left part of the Development Window there are <code class="inline">Back</code> and <code class="inline">Forth</code> buttons, which will enable you to revisit classes already seen during the current session: </p> <p><a href="/doc-image/es gt go back 01"><img src="/doc-image/eiffelstudio/_images/es_gt_go_back_01.png" border="0"/></a></p> <p>Click the <code class="inline">Back</code> button. This retargets the tool to the class you visited previously: <code class="inline">STRING_32</code>. The <code class="inline">Forth</code> button, immediately to the right of <code class="inline">Back</code>, becomes active. Click it to retarget back to <code class="inline">LIST</code>. </p> <p>Note that all buttons of the interface have a "tooltip" as shown in the figure above. if you move the cursor on a button, <strong>without clicking</strong>, and wait a second or so, a small message comes up, explaining the purpose of the button. Also, if there is an associated keyboard shortcut, it will be displayed in the tooltip. </p> <a id="The_Target_History"></a><h2>The Target History</h2> <p>As a fourth way to retarget -- there are more, and after this one we'll stop counting -- you can also use the Target History menu, which you can bring up through the little arrow to the right of the Class Field:</p> <p><a href="/doc-image/es gt target history 01"><img src="/doc-image/eiffelstudio/_images/es_gt_target_history_01.png" border="0"/></a></p> <p>If you click this arrow -- the little black triangle -- you will see a menu of all your recent targets. Doing this now will only show the two classes visited so far, <code class="inline">STRING_32</code> and <code class="inline">LIST</code>, but later on there will be more entries. By default EiffelStudio remembers 20 history entries; this is one of the settings you can change later if you wish, through the menu path: <code lang=text>Tools --> Preferences</code> But, let's don't do that now. </p> <a id="Adding_to_Favorites"></a><h2>Adding to Favorites</h2> <p>If you find yourself often needing to examine a particular class, you can add it to your <a href="/doc/eiffelstudio/Favorites_tool" class="wiki_link">Favorites</a>, much like adding an interesting page's web link to the bookmarks of a Web browser. </p> <p>It's easy to add the current target -- currently, <code class="inline">LIST</code> -- to your Favorites. Do it now by following the menu path: <code lang="text">Favorites --> Add to Favorites</code></p> <p><a href="/doc-image/es gt add to favorites 01"><img src="/doc-image/eiffelstudio/_images/es_gt_add_to_favorites_01.png" border="0"/></a></p> <p>Now display the favorites; one way is to go back to that same Favorites menu: <code lang="text">Favorites --> Favorites</code>The Favorites tool appears as a tab in the same area as the Groups tool: </p> <p><a href="/doc-image/es gt favorites 01"><img src="/doc-image/eiffelstudio/_images/es_gt_favorites_01.png" border="0"/></a> </p> <p>This gives us one more way to retarget a Development Window: click a class in the Favorites tool. <em>Two</em> ways actually, because once you add a class to Favorites, it appears in the Favorites menu and you can select it by choosing its menu item.</p> <p><a href="/doc-image/es gt list added to favorites 01"><img src="/doc-image/eiffelstudio/_images/es_gt_list_added_to_favorites_01.png" border="0"/></a></p> <p>Right now we don't need the Favorites tool, so you can get rid of it by clicking the little Close icon at the top right of the Favorites pane: </p> <p><a href="/doc-image/es gt close favorites 01"><img src="/doc-image/eiffelstudio/_images/es_gt_close_favorites_01.png" border="0"/></a></p> <p>After you close the Favorites tool, you may see some tool other than the Groups tool that we had been using. If this is the case, click on the Groups tool's tab at the bottom of the pane to make the library classes visible again.</p> <a id="Using_additional_Editing_tool_tabs"></a><h2>Using additional Editing tool tabs</h2> <p>So far, even though we've targeted to the Development Window to different classes, we've only used one Editor tab. But it is helpful sometimes to have views of several classes handy in multiple editor tabs. Its easy enough to create a new tab at the time that you target the Development Window to a new class. For example, you should see the class <code class="inline">CHAIN</code> in the Groups tool's view of the the <code class="inline">list</code> subcluster of <code class="inline">structures</code> (the same place we found class <code class="inline">LIST</code>. Instead of clicking on <code class="inline">CHAIN</code> the way we did <code class="inline">LIST</code>, this time <strong>control-right-click</strong> on <code class="inline">CHAIN</code>, that is to say, click with the rightmost button of the mouse while holding the CONTROL key on the keyboard. This creates a new tab for <code class="inline">CHAIN</code> and retargets the Development Window to that class, while sliding the existing tab for class <code class="inline">LIST</code> to the right a bit. </p> <p><a href="/doc-image/es gt development window multiple tabs 01"><img src="/doc-image/eiffelstudio/_images/es_gt_development_window_multiple_tabs_01.png" border="0"/></a></p> <p>You can click on any of the tabs and the Development Window will be retargeted to the class associated with the tab. Each tab has a "Close" button on it, so you can close tabs you no longer need. </p> <p>So, for now, close the tab with the class <code class="inline">CHAIN</code> and leave just the one tab with class <code class="inline">LIST</code>.</p> <a id="Using_additional_Development_Windows"></a><h2>Using additional Development Windows</h2> <p>With all the techniques seen so far, you were able to retarget the current the Development Window to a new class. And that may be all you'll ever need. But, as noted earlier, you may also wish to have two or more Development Windows active simultaneously. </p> <p>To create a new Development Window, follow the menu path: <code lang="text">File --> New Window</code>This will create a new Development Window with a title bar that reads "<code lang=text class="inline">Empty development tool #1</code>" because the window is (as yet) untargeted. You can also create a new Development Window by using the keyboard accelerator: <code class="inline">CTRL-N</code>. </p> <p>You can close a Development Window either by clicking its close button in the corner of the window, or by following the menu path:<code lang="text">File --> Close Window</code></p> <p>Be careful not to try to use:<code lang="text"> File --> Exit</code>to close a single window. This menu command will exit the entire EiffelStudio development environment, closing all windows.</p> <p>If, during a session, you end up with a number of windows active and want to see an active index to them, you can invoke the <a href="/doc/eiffelstudio/Windows_tool" class="wiki_link">active windows tool</a> by following the menu path: <code lang="text">View--> Tools--> Active windows</code></p> <p><a href="/doc-image/es gt active windows tool 01"><img src="/doc-image/eiffelstudio/_images/es_gt_active_windows_tool_01.png" border="0"/></a></p> </div> <div class="wdocs-nav"><div class="wdocs-nav-section">Back to <a href="/doc/eiffelstudio/EiffelStudio_tutorials" class="wdocs-folder">Tutorials</a></div><div class="wdocs-uuid"><a href="/doc/uuid/cb6c2e52-d238-9b55-0b78-ab3af9568550">Permanent link</a></div> </div> <div class="wdocs-cache-info">cached: 02/26/2025 6:20:52.000 PM</div></div> <div class="roc-comments-ext"> <div id="remark42"></div> <script> var remark_config = { site_id: 'eiffel-org-comments', url: 'https://www.eiffel.org/doc/uuid/cb6c2e52-d238-9b55-0b78-ab3af9568550', // Replace PAGE_URL with your page's canonical URL variable max_shown_comments: 25, // optional param; if it isn't defined default value (15) will be used theme: 'dark', // optional param; if it isn't defined default value ('light') will be used }; (function() { var d = document, s = d.createElement('script'); s.src = 'https://remark.eiffel.org/web/embed.js'; // prepends this address with domain where remark42 is placed (d.head || d.body).appendChild(s); })(); </script> </div> </div> </div> </section> </main> <!-- Footer --> <footer id="footer"> <div class="container"> <nav class="footer-nav"> <ul class="grid-5 has-gutter"> <li class="one-sixth"><a href="https://www.eiffel.org/welcome">Welcome</a> <ul> <li><a href="https://www.eiffel.org/purpose">Purpose</a></li> <li><a href="https://www.eiffel.org/news">News</a></li> <li><a href="https://www.eiffel.org/updates">Updates</a></li> <li><a href="https://www.eiffel.org/forum">Forum</a></li> <li><a href="https://www.eiffel.org/community">Community</a></li> <li><a href="https://www.eiffel.org/contact">Contact</a></li> <li> <a href="/account/roc-login?destination=doc%2Feiffelstudio%2FStarting_To_Browse">Sign in</a> </li> </ul> </li> <li class="one-sixth"><a href="https://www.eiffel.org/documentation">Documentation</a> <ul> <li><a href="https://www.eiffel.org/doc/eiffel">Eiffel</a></li> <li><a href="https://www.eiffel.org/doc/eiffelstudio">EiffelStudio</a></li> <li><a href="https://www.eiffel.org/doc/solutions">Solutions</a></li> <li><a href="https://www.eiffel.org/doc/glossary">Glossary</a></li> <li><a href="https://www.eiffel.org/doc/faqs">FAQs</a></li> <li><a href="https://www.eiffel.org/contribute">Contribute</a></li> </ul> </li> <li class="one-sixth"><a href="https://www.eiffel.org/resources">Resources</a> <ul> <li><a href="https://www.eiffel.org/resources/libraries">Libraries</a></li> <li><a href="https://www.eiffel.org/resources/tools">Tools</a></li> <li><a href="https://www.eiffel.org/resources/wish_list">Wish list</a></li> <li><a href="https://www.eiffel.org/resources/videos">Videos</a></li> <li><a href="https://www.eiffel.org/resources/follow_us">Follow us</a></li> </ul> </li> <li class=""> <div class="btn-holder"> <a class="btn btn-download" href="https://www.eiffel.org/downloads">Download Now</a> <a class="btn btn-tryonline" href="https://www.eiffel.org/try_eiffel">Try Eiffel Online</a> <a class="btn btn-contribute" href="https://www.eiffel.org/contribute">Contribute</a> <a class="btn btn-account" href="/account/roc-login?destination=doc%2Feiffelstudio%2FStarting_To_Browse">Sign in</a> </div> </li> <li class="one-sixth"> <ul class="social-networks"> <li><a class="facebook" target="_blank" href="https://www.facebook.com/pages/Eiffel-Programming-Language/235981463124887">Facebook</a></li> <li><a class="youtube" target="_blank" href="http://www.youtube.com/user/EiffelLanguage">You Tube</a></li> <li><a class="twitter" target="_blank" href="https://twitter.com/Eiffel_Language">Twitter</a></li> </ul> </li> </ul> </nav> <!-- Block "built_with_eiffel" cached: 02/26/2025 7:05:35.000 PM --> <div style="float: right">Built with the Eiffel ROC CMS and the <a href="http://www.eiffelweb.org">EiffelWeb framework</a>.</div> </div> </footer> <script src="/theme/responsive-eiffel-org/js/wdownloads.js"></script> <script src="/theme/responsive-eiffel-org/js/home.js"></script> <link href="/theme/responsive-eiffel-org/js/google-code-prettify-eiffel/styles/lang-eiffel.css" type="text/css" rel="stylesheet" /> <script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script> <script src="/theme/responsive-eiffel-org/js/google-code-prettify-eiffel/src/lang-eiffel.js"></script> <script src="https://www.google.com/recaptcha/api.js" async defer></script> </div> </body> </html>