Slick Edit V3 3 Users Manual SlickEdit Core V3.3 For Eclipse User Guide
EDIT V3.3 slickeditcore_v3.3_userguide
V3.3 to the manual 61b6ae76-3f03-4f29-8e20-69785c6e4612
2015-02-05
: Slick Slick-Edit-V3-3-Users-Manual-533047 slick-edit-v3-3-users-manual-533047 slick pdf
Open the PDF directly: View PDF .
Page Count: 568
Download | |
Open PDF In Browser | View PDF |
08SLICK0011_CORE_upd 1/24/08 11:05 AM Page 1 ® SlickEdit Corev3.3 for Eclipse ™ 1.919.473.0070 1.800.934.EDIT 1.919.473.0080 fax ® SlickEdit Core v3.3 for Eclipse SlickEdit Inc. 3000 Aerial Center Parkway, Suite 120 Morrisville, NC 27560 USA info@slickedit.com www.slickedit.com ™ SlickEdit, Visual SlickEdit, Clipboard Inheritance, DIFFzilla, SmartPaste, Context Tagging, Slick-C, and Code Quick | Think Slick are registered trademarks of SlickEdit Inc. All other products or company names are used for identification purposes only and may be trademarks of their respective owners. Protected by U.S. Patent 5,710,926. Copyright 1988-2008 SlickEdit Inc. All rights reserved. ® Code Quick | Think Slick SlickEdit® Core v3.3 for Eclipse™ SlickEdit® Core v3.3 for Eclipse™ Information in this documentation is subject to change without notice and does not represent a commitment on the part of SlickEdit Inc. The software described in this document is protected by U.S. and international copyright laws and by other applicable laws, and may be used or copied only in accordance with the terms of the license or nondisclosure agreement that accompanies the software. It is against the law to copy the software on any medium except as specifically allowed in the license or nondisclosure agreement. The licensee may make one copy of the software for backup purposes. No part of this documentation may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or information storage and retrieval systems, for any purpose other than the licensee's personal use, without the express written permission of SlickEdit Inc. Copyright 1988-2008 SlickEdit Inc. SlickEdit, Visual SlickEdit, Clipboard Inheritance, DIFFzilla, SmartPaste, Context Tagging, Slick-C, and Code Quick | Think Slick are registered trademarks of SlickEdit Inc. All other products or company names are used for identification purposes only and may be trademarks of their respective owners. Protected by U.S. Patent 5,710,926. Table of Contents 1. Introduction ................................................................................................................... 1 Getting the Most Out of SlickEdit® Core ....................................................................................2 Cool Features ....................................................................................................................2 Write More Code, Faster ...................................................................................................2 Get Started ........................................................................................................................3 Documentation and Conventions ..............................................................................................4 Accessing Documentation ................................................................................................4 Documentation Conventions .............................................................................................4 Supported Languages and Environments .................................................................................6 Supported Languages and File Types ..............................................................................6 Supported Editor Emulations ............................................................................................9 Install/Uninstall .........................................................................................................................10 System Requirements .....................................................................................................10 Installing SlickEdit® Core ................................................................................................10 Licensing .........................................................................................................................11 Uninstalling SlickEdit® Core ............................................................................................13 Help and Product Support .......................................................................................................14 Using the Help System ...................................................................................................14 Product Support ..............................................................................................................14 2. Quick Start ................................................................................................................... 15 General Options .......................................................................................................................16 Extension-Specific Options ......................................................................................................17 3. User Interface .............................................................................................................. 19 Screen Layout ..........................................................................................................................20 The Workbench ...............................................................................................................20 The Workspace ...............................................................................................................21 Perspectives ....................................................................................................................21 The SlickEdit® Core Editor ..............................................................................................21 Switching Between the SlickEdit® Core Editor and Eclipse Editors ................................23 Menus .............................................................................................................................24 Views ...............................................................................................................................25 Status Area .....................................................................................................................25 Dialogs ............................................................................................................................25 Command Line ................................................................................................................26 SlickEdit Views ........................................................................................................................27 Opening SlickEdit Core Views ........................................................................................27 Available SlickEdit® Core Views .....................................................................................27 The SlickEdit® Core Command Line .......................................................................................30 Activating the Command Line .........................................................................................30 Command Line History ...................................................................................................31 Command Line Completions ...........................................................................................31 Using Shortcuts Inside the Command Line .....................................................................31 v SlickEdit® Core v3.3 for Eclipse™ Using the Command Line to View Key Binding Associations .........................................31 Starting a Program from the Command Line (Shelling) ..................................................32 Command Line Prompting ..............................................................................................32 Common SlickEdit® Core Commands ............................................................................33 Using the Mouse and Keyboard ..............................................................................................35 Key Shortcuts in Text Boxes ...........................................................................................35 Redefining Common Keys ..............................................................................................37 4. User Preferences ......................................................................................................... 39 Introduction to User Preferences .............................................................................................40 Global Preferences .........................................................................................................40 Extension-Specific Preferences ......................................................................................40 Emulations ...............................................................................................................................41 Supported Emulations .....................................................................................................41 Changing Emulations ......................................................................................................42 Determining Keys/Functions ...........................................................................................43 Key and Mouse Bindings .........................................................................................................44 What is a Binding? ..........................................................................................................44 Managing Bindings .........................................................................................................45 Key Binding Settings .......................................................................................................50 Cursor, Mouse, and Scroll Settings .........................................................................................52 Setting the Cursor Style ..................................................................................................52 Hiding the Mouse Pointer ................................................................................................52 Displaying Tool Tips ........................................................................................................52 Scroll Style Settings ........................................................................................................52 Setting Fonts and Colors .........................................................................................................53 Fonts ...............................................................................................................................53 Colors ..............................................................................................................................55 Setting Colors for Screen Elements ................................................................................56 Restoring Settings on Startup ..................................................................................................59 5. Context Tagging ® ........................................................................................................ 61 Context Tagging ® Overview ....................................................................................................62 Tag-Driven Navigation ....................................................................................................62 List Members ...................................................................................................................62 Parameter Information ....................................................................................................63 Auto List Compatible Parameters ...................................................................................64 Completions ....................................................................................................................65 Symbol Browsing ............................................................................................................65 Statement Level Tagging ................................................................................................66 Building and Managing Tag Files ............................................................................................67 Building Tag Files ............................................................................................................67 Managing Tag Files ........................................................................................................70 Context Tagging ® Options ..............................................................................................73 6. Editing Features .......................................................................................................... 75 Navigation ................................................................................................................................76 Code Navigation .............................................................................................................76 Cursor Navigation ...........................................................................................................79 Symbol Browsing .....................................................................................................................81 vi SlickEdit® Core v3.3 for Eclipse™ Class View ......................................................................................................................82 Outline View ....................................................................................................................86 Find Symbol View ...........................................................................................................88 Preview View ...................................................................................................................89 References View .............................................................................................................91 Symbols View ..................................................................................................................93 Symbol Properties View ................................................................................................101 Code Templates ....................................................................................................................103 Instantiating a Template ................................................................................................103 Creating Templates .......................................................................................................105 Substitution Parameters ................................................................................................106 Organizing Templates ...................................................................................................108 Template Manager Operations .....................................................................................109 Template Manager Dialog .............................................................................................110 Template Options Dialog ..............................................................................................111 Add File Dialog ..............................................................................................................111 Add Parameter Dialog ...................................................................................................111 Add New Item Dialog ....................................................................................................112 Locating Templates .......................................................................................................113 Manually Creating a Template ......................................................................................113 Code Template Metadata File Reference .....................................................................116 Text Editing ............................................................................................................................126 Selections ......................................................................................................................126 Cutting, Copying, and Moving Text ...............................................................................134 Working with Lines ........................................................................................................135 Sorting Text ...................................................................................................................136 Inserting Literal Characters ...........................................................................................138 Color Coding ..........................................................................................................................139 Resetting Modified Lines on Save ................................................................................139 Adding Color-Coded Keywords to Supported Languages ............................................139 Creating Color Coding for a New Language .................................................................140 Color Coding Configuration ...........................................................................................140 Color Coding Settings ...................................................................................................142 Syntax Indent and SmartPaste® ............................................................................................143 Syntax Indent ................................................................................................................143 SmartPaste® .................................................................................................................144 Completions ...........................................................................................................................146 Auto-Complete ..............................................................................................................146 Word Completion ..........................................................................................................148 Configuring Completion Settings ..................................................................................148 Aliases ...................................................................................................................................150 Directory Aliases ...........................................................................................................150 Extension-Specific Aliases ............................................................................................152 Syntax Expansion ..................................................................................................................159 Syntax Expansion Settings ...........................................................................................159 Modifying Syntax Expansion Templates .......................................................................160 Adding Syntax Expansion for Other Languages ...........................................................160 Dynamic Surround and Surround With ..................................................................................162 Dynamic Surround ........................................................................................................162 vii SlickEdit® Core v3.3 for Eclipse™ Surround With ...............................................................................................................166 Unsurround ...................................................................................................................170 Bookmarks .............................................................................................................................172 Named Bookmarks .......................................................................................................172 Pushed Bookmarks .......................................................................................................174 Setting Bookmark Options ............................................................................................174 Setting Breakpoints ................................................................................................................176 Setting Conditional Breakpoints ....................................................................................176 Setting Java Exception Breakpoints .............................................................................176 Commenting ..........................................................................................................................177 Commenting Blocks and Lines .....................................................................................177 Creating Doc Comments ...............................................................................................178 String Editing .................................................................................................................180 Comment Wrapping ......................................................................................................180 Find and Replace ...................................................................................................................182 Quick Search and Replace ...........................................................................................182 Incremental Searching ..................................................................................................182 Find and Replace Commands ......................................................................................184 Find and Replace View .................................................................................................190 Find Symbol View .........................................................................................................192 Find and Replace with Regular Expressions ................................................................192 Undoing/Redoing Replacements ..................................................................................196 Beautifying Code ...................................................................................................................197 Code Beautifiers ............................................................................................................197 Reflowing Text ..............................................................................................................197 Refactoring ............................................................................................................................198 Quick Refactoring .........................................................................................................198 C++ Refactoring ............................................................................................................200 Reviewing Refactoring Changes ...................................................................................220 Java Refactoring ...........................................................................................................221 Viewing and Displaying ..........................................................................................................223 Hexadecimal View and Edit Mode ................................................................................223 Viewing Special Characters ..........................................................................................223 Selective Display ...........................................................................................................224 Other Display Options ...................................................................................................227 7. Language-Specific Editing ....................................................................................... 229 Language-Specific Editing Overview .....................................................................................230 Language Editing Modes ..............................................................................................230 Extension Options .........................................................................................................231 C and C++ .............................................................................................................................233 C/C++ Formatting Options ............................................................................................233 C/C++ Beautifier ............................................................................................................237 C/C++ Compiler Settings ..............................................................................................244 C/C++ Preprocessing ....................................................................................................245 Java .......................................................................................................................................248 Java Formatting Options ...............................................................................................248 Java Beautifier ..............................................................................................................251 Javadoc Beautifier ........................................................................................................251 viii SlickEdit® Core v3.3 for Eclipse™ Javadoc Editor ..............................................................................................................252 Organizing Java Imports ...............................................................................................252 Java Refactoring ...........................................................................................................253 XML and HTML ......................................................................................................................254 XML ...............................................................................................................................254 HTML ............................................................................................................................266 XML/HTML Formatting ..........................................................................................................279 Enabling/Disabling XML/HTML Formatting ...................................................................279 Working with Schemes .................................................................................................281 Working with Tags .........................................................................................................284 Formatting Settings .......................................................................................................285 Ada ........................................................................................................................................292 Ada Formatting Options ................................................................................................292 Ada Beautifier ................................................................................................................292 COBOL ..................................................................................................................................299 COBOL Formatting Options ..........................................................................................299 Pascal ....................................................................................................................................301 Pascal Formatting Options ............................................................................................301 PL/I ........................................................................................................................................303 PL/I Formatting Options ................................................................................................303 Python ....................................................................................................................................305 Begin/End Structure Matching for Python .....................................................................305 8. Tools and Utilities ..................................................................................................... 307 Comparing and Merging ........................................................................................................308 DIFFzilla® ......................................................................................................................308 3-Way Merge .................................................................................................................314 File History and Backups .......................................................................................................317 Compare Two Backup History Elements Using DIFFzilla .............................................317 Compare a Local Backup History Element with the Current Version Using DIFFzilla ..317 FTP ........................................................................................................................................318 Working with FTP ..........................................................................................................318 Setting FTP Options ......................................................................................................320 The Regex Evaluator .............................................................................................................321 Using the Regex Evaluator ...........................................................................................321 Using the Calculator and Math Commands ...........................................................................323 The Calculator ...............................................................................................................323 Math Commands ...........................................................................................................324 OS File Browser .....................................................................................................................327 9. Macros and Macro Programming ............................................................................ 329 Recorded Macros ..................................................................................................................330 Recorded Macro Operations .........................................................................................330 Using Macros to Discover and Control Options ............................................................335 Programmable Macros ..........................................................................................................336 Loading Macros ............................................................................................................336 Setting Macro Variables ................................................................................................336 10. SlickEdit Core Dialogs ............................................................................................ 339 Editing Dialogs .......................................................................................................................339 ix SlickEdit® Core v3.3 for Eclipse™ Select Text to Paste Dialog ...........................................................................................340 Enumerate Dialog .........................................................................................................340 Filter Selection: Command Dialog ................................................................................341 Search Dialogs ......................................................................................................................343 Find and Replace View .................................................................................................343 Find Symbol View .........................................................................................................354 Go to Definition Dialog ..................................................................................................357 Dialogs Related to Viewing and Displaying ...........................................................................358 Selective Display Dialog ...............................................................................................358 Macro Dialogs ........................................................................................................................361 Save Macro Dialog ........................................................................................................361 List Macros Dialog ........................................................................................................361 Variable Editor Dialog ...................................................................................................362 Grid Settings Dialog ......................................................................................................364 Menu Editor Dialog .......................................................................................................364 Auto Enable Properties Dialog ......................................................................................366 Tools Dialogs .........................................................................................................................369 Organize Imports Options Dialog ..................................................................................369 3-Way Merge Dialog .....................................................................................................370 DIFFzilla® Dialog ...........................................................................................................372 Multi-File Diff Output Dialog ..........................................................................................377 Context Tagging ® - Tag Files Dialog ............................................................................378 Options Dialogs .....................................................................................................................380 General Options Dialog .................................................................................................380 Extension Options Dialog ..............................................................................................398 Select a Tag Dialog .......................................................................................................420 File Options Dialog ........................................................................................................421 Key Bindings Dialog ......................................................................................................429 Bind Key Dialog .............................................................................................................432 Redefine Common Keys Dialog ....................................................................................433 Context Tagging ® Options Dialog .................................................................................436 Color Coding Setup Dialog ...........................................................................................439 Color Settings Dialog ....................................................................................................453 Font Configuration Dialog .............................................................................................454 XML/HTML Formatting Dialog ......................................................................................456 URL Mappings Dialog ...................................................................................................457 Proxy Settings Dialog ....................................................................................................458 Network Options Dialog ................................................................................................459 Web Browser Setup Dialog ...........................................................................................459 FTP Options Dialog .......................................................................................................461 Reflow Comment Dialog ...............................................................................................466 Current Document Options Dialog ................................................................................467 11. Appendix .................................................................................................................. 469 Encoding ................................................................................................................................470 Using Unicode ...............................................................................................................470 Environment Variables ...........................................................................................................475 Setting Environment Variables in vslick.ini ...................................................................477 Using the set Command ...............................................................................................477 x SlickEdit® Core v3.3 for Eclipse™ Configuration Variables .........................................................................................................479 Viewing Configuration Variables ...................................................................................479 Setting/Changing Configuration Variables ....................................................................479 Table of Configuration Variables ...................................................................................479 Directories and Files ..............................................................................................................484 Configuration Directory .................................................................................................484 System Configuration Files ...........................................................................................487 File Search Order ..................................................................................................................489 Search Order for Configuration Files ............................................................................489 Search Order for Executable Files ................................................................................489 VLX File and Color Coding ....................................................................................................490 Modifying the VLX File to Change a Color Definition ....................................................491 Creating a Lexer Name and a New VLX File ................................................................491 Editing the Key Binding Source .............................................................................................498 Menu Editing ..........................................................................................................................499 Creating and Editing Menus ..........................................................................................499 Using the ISPF and XEDIT Emulations .................................................................................501 ISPF Options Dialog .....................................................................................................501 ISPF Primary Commands .............................................................................................503 ISPF Line Commands ...................................................................................................505 Regular Expression Syntax ...................................................................................................520 UNIX Regular Expressions ...........................................................................................520 SlickEdit® Regular Expressions ....................................................................................526 Brief Regular Expressions ............................................................................................531 Unicode Category Specifications for Regular Expressions ...........................................537 Unicode Character Blocks for Regular Expressions .....................................................539 xi xii List of Figures 1.1. Embedded Languages in HTML ..................................................................................................8 1.2. HTML Embedded in Perl .............................................................................................................9 3.1. The Workbench .........................................................................................................................20 3.2. Managing File Associations .......................................................................................................21 3.3. Opening Source Files with SlickEdit Core .................................................................................23 3.4. Status Area ................................................................................................................................25 3.5. Redefine Common Keys Dialog ................................................................................................37 4.1. Emulation Options .....................................................................................................................42 4.2. Emulation Prompt ......................................................................................................................42 4.3. Key Bindings Dialog ..................................................................................................................45 4.4. Bind Key Dialog .........................................................................................................................48 4.5. Font Configuration Dialog ..........................................................................................................53 4.6. Color Settings Dialog .................................................................................................................56 5.1. List Members: Example 1 ..........................................................................................................63 5.2. List Members: Example 2 ..........................................................................................................63 5.3. Parameter Info: Example 1 ........................................................................................................64 5.4. Parameter Info: Example 1 ........................................................................................................64 5.5. Auto List Compatible Parameters ..............................................................................................65 5.6. Automatic Tagging Dialog .........................................................................................................67 5.7. Add Tag File Dialog ...................................................................................................................68 5.8. Add Tags Database Dialog .......................................................................................................69 5.9. Context Tagging ® - Tag Files Dialog .........................................................................................70 5.10. Rebuild Tag File Dialog ...........................................................................................................72 6.1. Class View .................................................................................................................................82 6.2. Class Exclusion Manager Dialog ...............................................................................................84 6.3. Outline View ..............................................................................................................................86 6.4. Preview View .............................................................................................................................89 6.5. References View .......................................................................................................................91 6.6. Symbols View ............................................................................................................................93 6.7. Symbol Uses/Calling Tree Dialog ..............................................................................................96 6.8. Base Classes Dialog .................................................................................................................97 6.9. Symbol Browser Filter Options Dialog .......................................................................................98 6.10. Symbol Properties View ........................................................................................................101 6.11. Add New Item Dialog .............................................................................................................103 6.12. Parameter Entry Dialog .........................................................................................................104 6.13. Block Insert Mode: Example 1 ...............................................................................................127 6.14. Block Insert Mode: Example 2 ...............................................................................................127 6.15. Block Insert Mode: Example 3 ...............................................................................................128 6.16. Sort Dialog .............................................................................................................................136 6.17. Color Coding Setup: Tokens Tab ..........................................................................................140 6.18. Example of Auto-Complete ...................................................................................................146 6.19. Select Alias File Dialog ..........................................................................................................150 6.20. Alias Editor Dialog .................................................................................................................153 6.21. Dynamic Surround: Example 1 ..............................................................................................162 xiii SlickEdit® Core v3.3 for Eclipse™ 6.22. Dynamic Surround: Example 2 ..............................................................................................163 6.23. Dynamic Surround: Example 3 ..............................................................................................164 6.24. Dynamic Surround: Example 4 ..............................................................................................165 6.25. Surround With Dialog ............................................................................................................167 6.26. Alias Editor Dialog for Surround With ....................................................................................167 6.27. Delete Code Block Dialog .....................................................................................................170 6.28. Find and Replace View .........................................................................................................190 6.29. Quick Rename Refactoring ...................................................................................................198 6.30. Quick Extract Method Refactoring .........................................................................................199 6.31. C++ Refactoring: Rename .....................................................................................................201 6.32. C++ Refactoring: Extract Method ..........................................................................................201 6.33. C++ Refactoring: Modify Parameter List ...............................................................................202 6.34. C++ Refactoring: Push Down to Derived Class ....................................................................203 6.35. C++ Refactoring: Push Down - Selecting Members to Move ................................................204 6.36. C++ Refactoring: Pull Up to Super Class ..............................................................................205 6.37. C++ Refactoring: Pull Up - Selecting Members to Move .......................................................206 6.38. C++ Refactoring: Encapsulate Field ......................................................................................207 6.39. C++ Refactoring: Extract Class 1 ..........................................................................................208 6.40. C++ Refactoring: Extract Class 2 ..........................................................................................208 6.41. C++ Refactoring: Extract Super Class ..................................................................................209 6.42. C++ Refactoring: Move Method 1 .........................................................................................210 6.43. C++ Refactoring: Move Method 2 .........................................................................................211 6.44. C++ Refactoring: Move Static Field .......................................................................................211 6.45. C++ Refactoring: Convert Global to Static Field ...................................................................212 6.46. C++ Refactoring: Convert Local to Field ...............................................................................213 6.47. C++ Refactoring: Replace Literal with Constant ...................................................................213 6.48. C++ Refactoring: Create Standard Methods .........................................................................214 6.49. Test Parsing Configuration: Example 1 .................................................................................216 6.50. Test Parsing Configuration: Example 2 .................................................................................217 6.51. Test Parsing Configuration: Example 3 .................................................................................219 6.52. Refactoring Results ...............................................................................................................220 6.53. Selective Display ...................................................................................................................225 7.1. Extension Options Dialog ........................................................................................................231 7.2. New Extension Dialog .............................................................................................................232 7.3. C/C++ Formatting Options: Begin-end style Tab ....................................................................233 7.4. C/C++ Formatting Options: Indentation Tab ...........................................................................234 7.5. C/C++ Formatting Options: Other Tab ....................................................................................236 7.6. C/C++ Beautifier: Begin-End Style Tab ...................................................................................238 7.7. C/C++ Beautifier: Indenting Tab ..............................................................................................239 7.8. C/C++ Beautifier: Comments Tab ...........................................................................................240 7.9. C/C++ Beautifier: Other Tab ....................................................................................................242 7.10. C/C++ Beautifier: Schemes Tab ............................................................................................243 7.11. C/C++ Compiler Properties Dialog ........................................................................................244 7.12. C/C++ Preprocessing Dialog .................................................................................................246 7.13. Java Options Dialog ..............................................................................................................248 7.14. Organize Imports Dialog ........................................................................................................252 7.15. XML Formatting Options Dialog ............................................................................................254 7.16. XML Beautifier: Indent Tab ....................................................................................................256 7.17. XML Beautifier: Tags Tab ......................................................................................................258 xiv SlickEdit® Core v3.3 for Eclipse™ 7.18. XML Beautifier: Attributes/Values Tab ..................................................................................260 7.19. XML Beautifier: Comments Tab ............................................................................................262 7.20. XML Beautifier: Advanced Tab ..............................................................................................263 7.21. XML Beautifier: Schemes Tab ...............................................................................................264 7.22. URL Mappings Dialog ...........................................................................................................265 7.23. Web Browser Setup Dialog ...................................................................................................266 7.24. HTML Formatting Options Dialog ..........................................................................................268 7.25. HTML Beautifier: Indent Tab .................................................................................................271 7.26. HTML Beautifier: Tags Tab ...................................................................................................272 7.27. HTML Beautifier: Attributes/Values Tab ................................................................................274 7.28. HTML Beautifier: Comments Tab ..........................................................................................275 7.29. HTML Beautifier: Advanced Tab ...........................................................................................277 7.30. XML/HTML Formatting Menu ................................................................................................279 7.31. Current Document Options Dialog ........................................................................................280 7.32. XML/HTML Formatting Scheme Configuration Dialog ..........................................................281 7.33. New Formatting Scheme Dialog ............................................................................................283 7.34. XML/HTML Formatting: General Tab ....................................................................................285 7.35. XML/HTML Formatting: Content Wrap Tab ...........................................................................287 7.36. XML/HTML Formatting: Tag Layout Tab ...............................................................................289 7.37. COBOL Formatting Options Dialog .......................................................................................299 7.38. Pascal Formatting Options Dialog .........................................................................................301 7.39. PL/I Formatting Options Dialog .............................................................................................303 8.1. DIFFzilla® Dialog .....................................................................................................................309 8.2. Multi-File Diff Output Dialog ....................................................................................................311 8.3. Save Multi-File Output Dialog ..................................................................................................312 8.4. 3-Way Merge Setup Dialog .....................................................................................................314 8.5. 3-Way Merge Results Dialog ...................................................................................................315 8.6. FTP Profile Manager Dialog ....................................................................................................318 8.7. Regex Evaluator View .............................................................................................................321 8.8. The SlickEdit® Calculator ........................................................................................................323 9.1. Binding Recorded Macros .......................................................................................................332 9.2. Set Variable Dialog ..................................................................................................................336 9.3. Variable Editor Dialog ..............................................................................................................336 10.1. Select Text to Paste Dialog ...................................................................................................340 10.2. Enumerate Dialog ..................................................................................................................341 10.3. Filter Selection: Command Dialog .........................................................................................342 10.4. Find and Replace View .........................................................................................................343 10.5. Find and Replace: Find Tab ..................................................................................................344 10.6. Find and Replace: Find in Files Tab ......................................................................................347 10.7. Find and Replace Replace Tab .............................................................................................350 10.8. Find and Replace: Replace in Files Tab ...............................................................................352 10.9. Find Symbol View ..................................................................................................................354 10.10. Go to Definition Dialog ........................................................................................................357 10.11. Selective Display Dialog ......................................................................................................358 10.12. List Macros Dialog ...............................................................................................................361 10.13. Variable Editor Dialog ..........................................................................................................362 10.14. Grid Settings Dialog ............................................................................................................364 10.15. Menu Editor Dialog ..............................................................................................................364 10.16. Auto Enable Properties Dialog ............................................................................................366 xv SlickEdit® Core v3.3 for Eclipse™ 10.17. Organize Imports Options Dialog ........................................................................................369 10.18. 3-Way Merge Dialog ............................................................................................................370 10.19. DIFFzilla®: Files Tab ...........................................................................................................372 10.20. DIFFzilla®: File Compare Options .......................................................................................374 10.21. DIFFzilla®: Dialog Setup Options ........................................................................................376 10.22. Multi-File Diff Output Dialog ................................................................................................377 10.23. Context Tagging ® - Tag Files Dialog ...................................................................................378 10.24. General Options: General Tab ............................................................................................380 10.25. General Options: Search Tab ..............................................................................................383 10.26. General Options: Selections Tab ........................................................................................386 10.27. General Options: Special Characters Tab ...........................................................................389 10.28. General Options: More Tab .................................................................................................391 10.29. General Options: Exit Tab ...................................................................................................394 10.30. General Options: Virtual Memory Tab .................................................................................396 10.31. Extension Options Dialog ....................................................................................................398 10.32. Extension Options: Indent Tab ............................................................................................400 10.33. Extension Options: Word Wrap Tab ....................................................................................402 10.34. Extension Options: General Tab .........................................................................................404 10.35. Extension Options: Comments Tab .....................................................................................406 10.36. Extension Options: Comment Wrap Tab .............................................................................411 10.37. Extension Options: Advanced Tab ......................................................................................413 10.38. Extension Options: Auto-Complete Tab ..............................................................................415 10.39. Extension Options: Context Tagging ® Tab .........................................................................417 10.40. Select a Tag Dialog .............................................................................................................421 10.41. File Options: Load Tab ........................................................................................................422 10.42. File Options: Save Tab ........................................................................................................424 10.43. File Options: AutoSave Tab ................................................................................................426 10.44. File Options: File Filters Tab ...............................................................................................428 10.45. Key Bindings Dialog ............................................................................................................429 10.46. Bind Key Dialog ...................................................................................................................432 10.47. Redefine Common Keys Dialog ..........................................................................................433 10.48. Context Tagging ® Options Dialog .......................................................................................436 10.49. Color Coding Setup Dialog ..................................................................................................439 10.50. Color Coding Setup: Tokens Tab ........................................................................................441 10.51. Color Coding Setup: Numbers Tab .....................................................................................443 10.52. Color Coding Setup: Strings Tab .........................................................................................445 10.53. Color Coding Setup: Language Tab ....................................................................................447 10.54. Color Coding Setup: Comments Tab ..................................................................................449 10.55. Color Coding Setup: Tags Tab ............................................................................................451 10.56. Color Settings Dialog ...........................................................................................................453 10.57. Font Configuration Dialog ....................................................................................................455 10.58. XML/HTML Formatting Dialog .............................................................................................457 10.59. Proxy Settings Dialog ..........................................................................................................458 10.60. Network Options Dialog .......................................................................................................459 10.61. Web Browser Setup Dialog .................................................................................................460 10.62. FTP Options: General Tab ..................................................................................................461 10.63. FTP Options: Advanced Tab ...............................................................................................462 10.64. FTP Options: Firewall/Proxy Tab ........................................................................................463 10.65. FTP Options: SSH/SFTP Tab .............................................................................................465 xvi SlickEdit® Core v3.3 for Eclipse™ 10.66. FTP Options: Debug Tab ....................................................................................................465 10.67. Reflow Comment Dialog ......................................................................................................466 10.68. Current Document Options Dialog ......................................................................................468 11.1. Configuration Directory Preferences .....................................................................................484 11.2. ISPF Options Dialog ..............................................................................................................501 xvii xviii List of Tables 1.1. Supported Languages and File Types ........................................................................................6 3.1. UI Commands vs. Command Line Counterpart ........................................................................33 3.2. Common SlickEdit Core Commands .........................................................................................33 3.3. Text Box Editing Key .................................................................................................................35 4.1. Command Line Font Recommendations ...................................................................................55 6.1. Preview View Information ..........................................................................................................91 6.2. Predefined Substitution Parameters ........................................................................................107 6.3. Summary of Metadata Element ...............................................................................................116 6.4. Selection Key ..........................................................................................................................128 6.5. Operations for Selected Text ...................................................................................................129 6.6. Sorting Options ........................................................................................................................138 6.7. Alias Escape Sequences .........................................................................................................155 6.8. Escape Sequence Examples ..................................................................................................156 6.9. Incremental Search Key ..........................................................................................................183 6.10. OptionCharacters for find and Slash (/) Commands ............................................................184 6.11. Replace Key ..........................................................................................................................187 6.12. Replace Command Search Examples ..................................................................................189 6.13. Examples of Replacing Using Regular Expressions .............................................................193 6.14. Examples of Tagged Search Expressions ............................................................................194 6.15. Hex Mode Key .......................................................................................................................223 8.1. Binary Operators .....................................................................................................................324 8.2. Math Command Examples ......................................................................................................325 11.1. Environment Variables ..........................................................................................................475 11.2. Configuration Variable ...........................................................................................................479 11.3. User Configuration Files ........................................................................................................485 11.4. System Configuration File .....................................................................................................487 11.5. VLX File Statement ...............................................................................................................491 11.6. Table of style Value ...........................................................................................................494 11.7. ISPF Primary Commands ......................................................................................................503 11.8. ISPF Line Commands ...........................................................................................................506 11.9. XEDIT Line Commands .........................................................................................................516 11.10. Unsupported ISPF Primary Commands ..............................................................................517 11.11. Supported ISPF Commands ...............................................................................................518 11.12. UNIX Regular Expression ...................................................................................................520 11.13. UNIX Regular Expression Examples ...................................................................................525 11.14. SlickEdit Regular Expressions ............................................................................................526 11.15. SlickEdit Regular Expression Examples .............................................................................531 11.16. Brief Regular Expressions ...................................................................................................532 11.17. Brief Regular Expression Examples ....................................................................................536 11.18. Unicode SubCategories for Regular Expressions ...............................................................538 11.19. Unicode Character Blocks for Regular Expressions ...........................................................540 xix xx Chapter 1. Introduction 1 Cool Features Getting the Most Out of SlickEdit® Core At SlickEdit, we take great pride in delivering unparalleled power, speed, and flexibility to our customers. Our goal is to remove the tedious tasks involved with programming, allowing you to focus on the reason you first got into programming: the thrill of writing great code. SlickEdit Core brings the rich history of excellence of SlickEdit to the Eclipse framework. It delivers the power programming capabilities needed to write more code faster and more accurately, making it an indispensable plug-in for developers. Cool Features SlickEdit® Core contains powerful editing features and capabilities. Some of our coolest features are listed in the Cool Features dialog. Using this dialog, you can read a description of each feature and watch a short demo of the feature in action. By default, the Cool Features dialog appears each time Eclipse is started. It can also be displayed anytime by clicking Help → SlickEdit Cool Features. Write More Code, Faster These keys to programming efficiency will help you write more code, faster than you ever have before: • Keep your hands on the keyboard - Time is wasted each time you reach for the mouse. SlickEdit ® Core contains 13 editor emulations with predefined key bindings that are ready for use in performing common tasks. Define your own key bindings or invoke editor operations from the SlickEdit Core command line. For more information, see Using the Mouse and Keyboard. • Type as little as possible - SlickEdit Core contains many features that reduce the number of keystrokes you type, including automatic completions, syntax expansion, aliases, macros, code templates, and code generators. For information about these features, see the topics in Chapter 6, Editing Features. • Rapidly navigate code - Instantly jump from a symbol to its definition or view a list of references. Preview definitions for the current symbol without having to open the file. Use bookmarks to mark important locations in the code. SlickEdit Core includes powerful browse and search capabilities, allowing you to quickly find the code you want. See Navigation for more information. • Access information quickly - SlickEdit Core uses visual indicators to provide you with information about your code, including syntax highlighting and color coding. Special views are also available for looking up information about files, classes, symbols, definitions, and more. To learn more, see SlickEdit Views, Symbol Browsing, and other topics in Chapter 6, Editing Features. • Let SlickEdit Core do the formatting - Syntax indenting, SmartPaste®, and code beautifiers are just a few of the automatic formatting features in SlickEdit Core. For more information, see the topics in Chapter 6, Editing Features. • Utilize utilities - SlickEdit Core provides many utilities for working with your code, such as DIFFzilla®, 3-Way Merge, a RegEx Evaluator, math commands, and even a calculator. See the topics in Chapter 8, 2 Get Started Tools and Utilities for more information. Get Started To get started, check out Chapter 2, Quick Start. This will guide you through configuration of some of the most common user preference settings, so you can get more work done in less time, your way. 3 Accessing Documentation Documentation and Conventions Accessing Documentation Documentation is located in the SlickEdit® Core installation directory at/eclipse/plugins/com.slickedit.core_VERSION/docs. The docs directory contains PDFs of the following items: • The User Guide - This guide provides comprehensive information about using SlickEdit Core. • The Slick-C® Macro Programming Guide - This guide contains details about how to write macros using the Slick-C macro programming language. • Emulation charts for the following editors: BBEdit, Brief, CodeWarrior™, CodeWright®, CUA (default), Epsilon, GNU Emacs, ISPF, SlickEdit (Text Mode edition), Vim, Visual C++ ® 6, Visual Studio®, and Xcode®. In addition to the documentation, SlickEdit Core provides a built-in Help system. The contents of the Help system is the same as the contents of the User Guide. Documentation Feedback We welcome your comments and suggestions regarding our documentation. Please send feedback to . Documentation Conventions The subsequent topics describe conventions that are used in the SlickEdit® Core documentation. Default Emulation/Key Binding Mode CUA is the default editor emulation mode. Therefore, key bindings and shortcuts listed in the documentation follow the CUA emulation. Platform-Specific Notes Platform-specific notes for for Microsoft Windows and Linux® are listed throughout the documentation where applicable. Menus and Dialogs Instructions for navigating to items accessed from the main menu are written in the form: MainMenuItem > SubMenuItem For example, the text "click Window → Preferences" indicates that you should first select Window from 4 Supported Languages and Environments the main menu, then select Preferences from the Window submenu. Our documentation structure is set up so that instructions for using the product make up the bulk of the content, while listings of dialog boxes and options can be found in Chapter 10, SlickEdit Core Dialogs. Buttons on dialogs, such as OK and Close, are not usually documented since the meaning is obvious. Code Syntax Conventions • Commands, switches, keywords, properties, operators, options, variables, and text to be typed by the user are shown in bold type. • User-input variables and placeholders are shown in bold italic type. • Code samples and file names are displayed in a monospaced font. • File extensions and environment variables are written with an UPPERCASE font. • SlickEdit® Core commands that contain two or more words are written with underscore separators: for example, cursor_down. Note that in the user interface, however, these commands are displayed with hyphen separators: for example, cursor-down. Both of these forms work, so you can use whichever style you prefer. 5 Supported Languages and File Types Supported Languages and Environments This section lists the languages and file types supported by each SlickEdit® Core feature as well as the supported emulations. Supported Languages and File Types The table below indicates the languages and file types that support key SlickEdit® Core features. Features that are not language-specific, such as DIFFzilla®, are not listed here. Table 1.1. Supported Languages and File Types Feature Languages Automatic Syntax Expansion ActionScript, Ada, AWK, C, C#, C++, CFML, CFScript, Ch, COBOL, DTD, Fortran, HTML, IDL, InstallScript, J#, Java, JavaScript™, JSP™, Objective-C, Pascal, Perl, PHP, PL/SQL, PV-WAVE ®, Python™, REXX, Ruby, SAS ®, Slick-C®, Tcl, Transact-SQL®, VBScript, Verilog ®, VHDL, Visual Basic®, Visual Basic .NET™, XML, XSD Code Beautifier ActionScript, Ada, C, C#, C++, CFML, HTML, Java, JavaScript, JSP, Slick-C, XML, XSD Color Coding ActionScript, Ada, ANTLR, AppleScript®, Assembly Language, AWK, Bourne shell scripts, C, C Shell, C#, C++, CFML, CFScript, Ch, CICS®, COBOL, DB2®, DTD, Fortran, High Level Assembler, HTML, IDL, InstallScript, J#, Java, JavaScript, JCL, JSP, Lex, Modula-2, Objective-C, Pascal, Perl, PHP, PL/ I, PL/SQL, PowerNP™ Assembler, Progress ® 4GL, PV-WAVE, Python, REXX, Ruby, SAS, Slick-C, Tcl, Transact-SQL, VBScript, Verilog, VHDL, Visual Basic, Visual Basic .NET, Windows batch files, x86 Assembly, XML, XSD, Yacc Context Tagging ®: Auto List Members, Auto Parameter Info ActionScript, Ada, C, C#, C++, CFML, CFScript, Ch, CICS, COBOL, DTD, High Level Assembler, HTML, IDL, InstallScript, J#, Java, JavaScript, JSP, Objective-C, Pascal, Perl, PHP, PL/I, PV-WAVE, Python, Ruby, Slick-C, VBScript, Verilog, VHDL, Visual Basic .NET, XML, XSD Context Tagging: Auto List Parameters ActionScript, C, C++, Ch, J#, Java, Slick-C 6 Supported Languages and File Types Feature Languages Javadoc™ Editor ActionScript, C, C#, C++, J#, Java, JavaScript, Slick-C Select/Hide Code Block ActionScript, Ada, C, C#, C++, CFML, Ch, COBOL, DB2, Fortran, High Level Assembler, HTML, IDL, InstallScript, J#, Java, JavaScript, Modula-2, Objective-C, Pascal, Perl, PHP, PL/SQL, Slick-C, Tcl, Visual Basic, Visual Basic .NET, XML, XSD Selective Display Collapsible code block and function bodies. ActionScript, Ada, ANTLR, C, C#, C++, CFML, CFScript, Ch, CICS, COBOL, DB2, DTD, Fortran, High Level Assembler, HTML, IDL, InstallScript, J#, Java, JavaScript, JCL, JSP, Lex, Modula-2, Objective-C, Pascal, Perl, PHP, PL/I, PL/SQL, PowerNP Assembler, PV-WAVE, Python, REXX, Ruby, SAS, Slick-C, Tcl, Transact-SQL, VBScript, Verilog, VHDL, Visual Basic, Visual Basic .NET, x86 Assembly, XML, XSD, Yacc SmartPaste® Pasted code re-indents to correct level. ActionScript, AWK, C, C#, C++, IDL, InstallScript, J#, Java, JavaScript, JSP, Objective-C, Pascal, Perl, PHP, PL/I, PV-WAVE, Python, Ruby, Slick-C, Tcl Source Code Navigation and Lookup Includes Class, Outline, Preview, References, and Symbols views, as well as symbol navigation. ActionScript, Ada, ANTLR, Assembly Language, AWK, Bourne shell scripts, C, C Shell, C#, C++, CFML, CFScript, Ch, CICS, COBOL, DB2, DTD, Fortran, High Level Assembler, HTML, IDL, InstallScript, J#, Java, JavaScript, JCL, JSP, Lex, Makefile, Modula-2, Objective-C, Pascal, Perl, PHP, PL/I, PL/SQL, PowerNP Assembler, Progress 4GL, PVWAVE, Python, REXX, Ruby, SAS, Slick-C, Tcl, Transact-SQL, VBScript, Verilog, VHDL, Visual Basic, Visual Basic .NET, Windows batch files, x86 Assembly, XML, XSD, Yacc Syntax Indenting Cursor is placed at correct indent level. ActionScript, Ada, AWK, C, C#, C++, CFML, CFScript, Ch, COBOL, Fortran, HTML, IDL, InstallScript, J#, Java, JavaScript, JSP, Objective-C, Pascal, Perl, PHP, PL/SQL, PV-WAVE, Python, REXX, Ruby, SAS, Slick-C, Tcl, Transact-SQL, VBScript, Verilog, VHDL, Visual Basic, Visual Basic .NET, XML, XSD 7 Supported Languages and File Types Embedded Languages SlickEdit® Core recognizes languages embedded in HTML, COBOL, Perl scripts, and UNIX shell scripts. When editing embedded languages, all language-sensitive features are supported, including Context Tagging®, SmartPaste®, Syntax Expansion, Syntax Indenting, and Color Coding. In fact, Context Tagging picks up embedded tags. For example, the Outline view displays function names if any exist. Embedded language colors are user-defined. Embedded Languages in HTML SlickEdit® Core supports any embedded language in HTML. However, Web browsers usually only support VBScript, JavaScript, and/or Java, while Web servers typically support VBScript, Java, or PHP. The following screen is an example of VBScript, JavaScript, and Java embedded in HTML: Figure 1.1. Embedded Languages in HTML Embedded Languages in Perl and Other Scripting Languages To allow SlickEdit ® Core to recognize embedded source in a Perl script or UNIX shell, prefix the HERE 8 Supported Editor Emulations document terminator with the color coding lexer name. The following Perl example shows HTML embedded in a Perl script. Unknown languages are color-coded in string color. Figure 1.2. HTML Embedded in Perl Supported Editor Emulations SlickEdit® Core provides keyboard emulations for the following editors: • BBEdit • Brief • CodeWarrior • CodeWright • CUA (the SlickEdit Core default) • Epsilon • GNU Emacs • ISPF • SlickEdit® (text mode edition) • Vim • Visual C++ 6 • Visual Studio default • Xcode See Emulations for more information. 9 System Requirements Install/Uninstall System Requirements SlickEdit® Core runs on Microsoft® Vista™, Windows® XP, or Windows 2000 as well as Linux ® x86/GTK 2 (kernel 2.4 or later), with the following requirements: • 256 MB minimum recommended memory • 150 MB available hard disk space on Windows, 200 MB on Linux • Eclipse 3.3, including JDT • Java 5 or later (Linux only) • Internet connection required to activate license Optionally, CDT 3.1 is needed to run, compile, and debug C and C++ programs. Installing SlickEdit® Core SlickEdit Core is provided as an annual subscription that includes support. Installation can be performed by using the Eclipse Update Manager, or you can download ZIP files. Installing with the Update Manager To install the SlickEdit ® Core with the Eclipse Update Manager: 1. In Eclipse, select Help → Software Updates → Find and Install. 2. Select Search for new features to install. 3. Click the New Remote Site button on the Update sites to visit screen. 4. Enter a name for the plug-in, like "SlickEdit Core", and enter the following for the URL: http://www.slickedit.com/updates/secore 5. Select SlickEdit Core in the list of features to install, and click Next. 6. Accept the license agreement to continue. 7. Click Finish. Installing with ZIP Files SlickEdit also provides ZIP files for installing SlickEdit® Core. Unzip the files to your Eclipse installation directory, then follow the instructions below to complete setup. 10 Licensing Setup on Windows 1. Open a command line utility and change to the SlickEditCoreSetup subdirectory of your Eclipse installation. 2. Run the following command as a user with administrator privileges: .\ias add SlickEditCore3.3.0 Setup on Linux 1. Open a command line utility and change to the SlickEditCoreSetup subdirectory of your Eclipse installation. 2. Change to the root directory of your Eclipse installation, and run the following command: chmod -R +x plugins/com.slickedit.linux.libs_3.3.0/slickedit 3. Run the following command as a user with root access: sh install_fnp.sh FNPLicensingService Finding Updates To find updates for SlickEdit ® Core: 1. In Eclipse, select Help → Software Updates → Find and Install. 2. Select Search for updates of the currently installed features. 3. Select the SlickEdit update site from the list of sites, and click Next. 4. Accept the license agreement to continue. 5. Click Finish. Licensing SlickEdit® Core v3.3 uses FLEXnet™ Publisher from Macrovision to manage licenses. When Eclipse with SlickEdit® Core is run, it checks for an activated license. If one can't be found, the SlickEdit License Manager wizard is run. This gives you the option to get a trial license, buy a license, or enter a license key. You can also manually run the SlickEdit License Manager by selecting Help → SlickEdit License Manager. • To try out SlickEdit Core, click the option to obtain a trial license. This will take you to a Web page where you can register for a trial. A license key will be e-mailed to you to activate the product. A trial can be converted to full license by entering a full license key at any time in the SlickEdit License Manager. 11 Licensing • To buy a full license, visit the SlickEdit Web site at http://www.slickedit.com or select the Purchase a License option. That will take you directly to the product page for SlickEdit Core. • To enter a license key for an existing license, select Enter a license key. Activation After you enter a license key to activate the product, SlickEdit® Core contacts the license server over the Internet. You are permitted up to five concurrent activations of SlickEdit Core, initially. You can contact SlickEdit Sales to get additional activations at no additional cost if you need more. Activating SlickEdit Core enables your subscription to run on a particular machine. You can deactivate a license if you want to use it on a different machine. Uninstalling SlickEdit Core does not automatically deactivate the license. Your license key is good for one year. Any new versions of SlickEdit Core that are released will work with the existing key. You will not need to reactivate a machine when installing a new version of SlickEdit Core. When your subscription expires, you will need a new license key. Each machine will need to be reactivated using that key. Deactivation Once you have activated SlickEdit® Core on five machines, you will not be able to activate it on another machine until you have deactivated one of the other five. If you need more than five machines activated at one time, you can contact SlickEdit Sales to request additional activations at no cost. You can deactivate a license using the SlickEdit License Manager. Select Help → SlickEdit License Manager and then select the Deactivate a license option. You can also deactivate a license using a stand-alone utility shipped with SlickEdit Core: vsact.exe in the flex subdirectory of your SlickEdit Core installation directory. You can copy the flex directory from one machine to another and run vsact.exe. You can also download these utilities from the SlickEdit Web site. To deactivate a license with vsact.exe, type: vsact deactivate If you have more than one license active on this machine, perhaps for other SlickEdit products, you will need to specify an ID for the license to deactivate. Run vsact list to display a list of the licenses and their IDs. Note Uninstalling SlickEdit Core does not deactivate the license. If you have uninstalled SlickEdit Core, you can copy the utilities in the flex subdirectory of another installation and run vsact to deactivate this license. Repairing a License 12 Uninstalling SlickEdit® Core FLEXnet Publisher identifies your machine using a combination of information about the hardware on this machine. No personal data is used in creating this ID. Small changes to your machine, like switching display cards, upgrading memory, or changing hard drives can cause the license to become "damaged". A license can also be damaged by changing the system date by more than one day. When this happens you will need to repair the license. SlickEdit® Core automatically detects damaged licenses and launches the SlickEdit License Manager. You will be prompted to enter your license key. The number of repairs is limited, but enough are available to handle any reasonable hardware changes. If you run out of repairs, please contact Product Support. If enough hardware is changed, then this will appear to be a different machine and you will have to activate the license as though this was the first time Eclipse with SlickEdit Core was run. In that case, you will lose the activation you had previously. Therefore, we strongly recommend that you deactivate your license prior to making substantial changes to your computer's hardware. Adjusting the System Date Changing the system date on your computer could damage your license. The SlickEdit® License Manager records the date each time the product is run. If you run Eclipse with SlickEdit Core with a system date that is more than one day earlier than a previous run then your license will be damaged. This is part of the tamper protection on time-limited licenses, like a trial license or the SlickEdit Core subscription. Changing your system date is a normal part of testing time-based behavior in the software you are developing. For example, you may need to set your clock ahead to test alerts on a task management program. As long as you don't run Eclipse with SlickEdit Core (or another FLEXnet Publisher licensed product) while your clock is set ahead, you will not have any repair issues. If you do need to run SlickEdit Core, your license will be damaged when you run again at the current date. When this occurs, you can repair the license as described in Repairing a License. The number of repairs is limited, so you should be cautious about running SlickEdit Core when your clock is set ahead. If you run out of repairs, please contact Product Support. Daylight savings time will not cause this to occur since it is only adjusting the date by one day. Only changes larger than one day will trigger this. Uninstalling SlickEdit® Core To uninstall SlickEdit ® Core: 1. In Eclipse, select Help → Software Updates → Manage Configuration. 2. Select SlickEdit Core from the list. 3. Right-click and select Uninstall. 13 Using the Help System Help and Product Support There are several ways to get help about SlickEdit® Core: • Use the Help system - See Using the Help System below. • Search the FAQ - A list of frequently asked questions and answers is available from the Product Support section of our Web site at http://www.slickedit.com. • Use the Community Forums - Search for or post your question on the SlickEdit Community Forums to seek help from other SlickEdit Core users. The forums are located at http://community.slickedit.com. • Contact Product Support - See Contacting Product Support below. Using the Help System When SlickEdit® Core is installed, the searchable Help system is installed with the product. The contents of the Help system are the same as the contents of the User Guide located in the docs installation subdirectory (see Accessing Documentation). To access the Help system, from the main menu, click Help → Help Contents, then expand SlickEdit Core v3.3 for Eclipse in the tree. Note Context-sensitive Help is currently not available in SlickEdit Core. Product Support Patches, macros, FAQs, and more are available on the Product Support section of our Web site at http://www.slickedit.com. From within Eclipse, you can click Help → SlickEdit Support Web Site to launch the site in a browser window. Contacting Product Support Use the SlickEdit Community Forums at http://community.slickedit.com to report all defects and share any feedback you have on this release. For problem reports, please provide the following information: • A description of the problem. • The language you are working in (C/C++, Java, etc.). • SlickEdit Core program information. Select Help → About SlickEdit Core, then select the Program Information tab, click Copy To Clipboard and paste the information in the problem report. • A code snippet to help us reproduce it (if possible). 14 Chapter 2. Quick Start SlickEdit® Core provides numerous configuration options so you can customize your environment according to your working style and preferences. To help get you up and running as quickly as possible, the Quick Start describes commonly used option settings that are found in most programming editors. The options fall into two categories: General Options and Extension-Specific Options. 15 Extension-Specific Options General Options General options affect all language extensions. You may want to look through all of the dialogs mentioned to see if there are any other settings you want to make. To see a listing of all of the option dialogs and their descriptions, see the appropriate topics in Chapter 10, SlickEdit Core Dialogs. Use the Preferences dialog to access SlickEdit® Core options described below. To display the Preferences dialog, from the main menu, click Window → Preferences. In the tree, expand SlickEdit and click General. • Changing the emulation - During the product installation, you are prompted to choose the editor emulation. The default is CUA. To change the emulation at any time, double-click the Emulation setting and specify the desired emulation. • Expanding/collapsing with a single click - Selective Display Plus and Minus bitmaps can be expanded or collapsed with a single click rather than a double-click. To specify this option, double-click the General setting. On the General Options dialog, select the General tab, then select the option Expand/ collapse single click. • Clicking past the end of a line - To have the ability to place the cursor past the end of a line, doubleclick the General setting. On the General Options dialog, select the General tab, then select the option Click past end of line. • Specifying cursor up/down behavior - By default, cursor_up and cursor_down commands go to the same column of the next or previous line, unless that line is shorter than the current column, in which case the cursor is placed at the end of the line. To have the cursor placed in virtual space at the end of the line, double-click the Redefine Common Keys setting. Uncheck the option Up/Down on text. • Changing the line insert style - In code, a line of text is a meaningful unit of functionality. SlickEdit ® Core treats line selections differently than character selections. Line selections are pasted either above or below the current line, saving you from tediously positioning the cursor at the beginning or end of a line prior to pasting. To specify where line selections are pasted, double-click the General setting. On the General Options dialog, select the More tab, then set the Line insert style option to Before or After. The default is After. • Setting color schemes and fonts - Predefined color schemes, as well as individual settings, are available for changing the colors of screen elements. To use a different color scheme, double-click the Color setting. Click the Schemes button, and select a scheme that you like from the Color scheme dropdown list. To change the fonts used for screen elements, go back to the Preferences dialog and doubleclick the Font setting. 16 Extension-Specific Options Extension-Specific Options These options are specific to file extensions, and are available on the Extension Options dialog (open the Preferences dialog, expand SlickEdit and click General in the tree, then double-click the File Extension Setup setting). When the Extension Options dialog is displayed, before setting the options, select the extension you wish to affect from the Extension drop-down list. In addition to the options described below, more settings for the selected language extension are available by pressing the Options button on the Extension Options dialog. Because each of these dialogs is different based on the selected extension, we recommend that you look through these dialogs for any settings that you may want to make. To see a listing of all of the option dialogs and their descriptions, see topics in Chapter 10, SlickEdit Core Dialogs. • Changing the brace style - To change the brace style used for C, C++, C#, Java, and other languages that use braces, click the Options button on the Extension Options dialog, then specify the Begin-End Style that you want to use. • Changing the tab and indent styles: • Indenting with spaces - By default, when you press the Tab key to indent, literal spaces are inserted. This is a feature called Syntax Indent. To change the amount of spaces, select the Indent tab, make sure the Indent style is set to Auto, then specify the amount of spaces in the Syntax indent text box. • Indenting with tabs - If you plan to indent your code using tabs, or if you will be editing files that already contain tabs, specify your tab preferences on the Indent tab. Select the option Indent with tabs, then specify the amount of spaces tab characters should have in the Tabs text box. Note For C, C++, Java, and similar languages, you can find more indenting options by clicking the Options button on the Extension Options dialog. • Enabling/disabling Syntax Expansion - When you type a keyword, such as if or for, press the spacebar to expand that syntax element, inserting the rest of the if or for statement. This feature is called Syntax Expansion. To turn it off, select the Indent tab, then deselect the option Syntax expansion. • Setting symbol navigation - For C and C++, by default, with each attempt to navigate to a definition (Ctrl+Dot or Search → Go to Definition), you will be prompted for whether you wish to navigate to the definition (proc) or the declaration (proto). To specify that Go to Definition always navigates to one or the other, select the Context Tagging ® tab, then select one of the Go to Definition options. • Showing the info for a symbol under the mouse - By default, as the mouse cursor floats over a symbol, the information and comments for that symbol are displayed. To turn this behavior off, select the Context Tagging ® tab, then deselect the option Show info for symbol under mouse. • Configuring C/C++ preprocessing - For C and C++, your source code base will typically include pre17 Extension-Specific Options processor macros that you use in your code for portability or convenience. For performance considerations, Context Tagging does not do full preprocessing, so preprocessing that interferes with normal C++ syntax can cause the parser to miss certain symbols. To configure your preprocessing to avoid these omissions, see C/C++ Preprocessing. 18 Chapter 3. User Interface 19 The Workbench Screen Layout Note SlickEdit® Core does not modify the Eclipse screen layout, so this information is intended only as a brief overview. See "Workbench User Guide" in the Eclipse Help for more details about the Eclipse layout. The Workbench The workbench is the area where the workspace, projects, and programs are contained. Use the workbench to manage and edit all projects in various perspectives, views, or editors. Work may only occur in one workbench at a time. Figure 3.1. The Workbench 20 Perspectives The Workspace The workspace is a collection of projects. A project contains all resources such as source files, subfolders, icons, and generated code. By default, the workspace files are placed in a workspace subdirectory under the install directory. Perspectives A perspective in Eclipse is a set of views and editors. For example, the Java perspective has a much different set of views than the Debug perspective. You can customize each perspective's layout by dragging and dropping. The SlickEdit® Core Editor Use the SlickEdit Core editor to create and change projects, folders, files, and classes. To edit files and classes in SlickEdit Core, first associate those files or classes with the editor or open the source file using the editor. Figure 3.2. Managing File Associations 21 The SlickEdit® Core Editor To associate files to edit, complete the following steps: 1. From the main menu, click Window → Preferences. 2. Expand General, then expand Editors and select File Associations. 3. From the File Types list, select the desired file type. Or, to add an extension, click Add. 4. From the Associated Editors list, select the desired editor. 5. To make this the default editor for this file type, click the Default button. 6. Click OK. Source files can be opened with the SlickEdit Core editor in the following ways: 22 Switching Between the SlickEdit® Core Editor and Ec• To open a source file in the workspace, from the Navigator view, select the desired file. Right-click the file, then select Open. • To open a file using a specific editor, from the Navigator view, select the desired file. Right-click the file, then select Open With. • To open a file that is outside of the workspace, from the main menu, click File → Open. Figure 3.3. Opening Source Files with SlickEdit Core Switching Between the SlickEdit® Core Editor and Eclipse Editors SlickEdit Core provides the ability to switch from the SlickEdit Core editor to several other Eclipse editors, for the current buffer. These commands are provided in the right-click context menu of the editor: • Switch to Java Editor – Changes to the JDT editor. Visible only for Java files. 23 Menus • Switch to C/C++ Editor – Changes to the CDT editor. Visible only for C/C++ files. • Switch to Ant Editor – Changes to the Eclipse Ant build.xml editor. Visible only for build.xml files. • Switch to Plug-in Manifest Editor – Changes to the Eclipse plugin.xml editor. Visible only for plugin.xml files. Similarly, you can also switch from any Eclipse editor to the SlickEdit Core editor for the current buffer. To do this, use the Switch To SlickEdit, accessible from the right-click context menu in the Eclipse editor. Menus If a menu specific to SlickEdit Core is not visible, such as the Format menu, then close the open files or classes and re-open with the SlickEdit Core editor. To open with the SlickEdit Core editor, complete the following steps: 1. Right-click on the desired file or class and select Open With. 2. Select the SlickEdit Core editor, even if it appears to have already been chosen. 3. If this is the first time opening the editor, prompts appear to tag the run-time libraries. 4. Follow the remaining prompts. The following menus are specific to or affected by SlickEdit Core: • File • Edit • Format • Display • Navigate • Search • Macro • Tools • C/C++ Refactoring • Window • Help 24 lipse Editors Views Views are windows that show various types of information that you can move around and dock within Eclipse. See SlickEdit Views for information. Status Area The status area for a perspective and an editor displays text messages. It indicates if the current mode is insert, overwrite, or replace, and if a file is read-only. The editor status area also displays the line and column number for the cursor location. Figure 3.4. Status Area Dialogs Although SlickEdit® Core shares a heritage with our stand-alone editor, SlickEdit, dialogs within SlickEdit Core may contain options that are not available when the functionality is not applicable to the Eclipse en25 Command Line vironment. By the same token, some SlickEdit commands may not be available. See Chapter 10, SlickEdit Core Dialogs for descriptions of each dialog specific to SlickEdit Core, broken into the following categories: • Editing Dialogs • Search Dialogs • Editing Dialogs • Dialogs Related to Viewing and Displaying • Macro Dialogs • Tools Dialogs • Options Dialogs Command Line To activate the SlickEdit Core command line, press Esc in CUA emulation, Ctrl+A in Vim emulation, or Alt+X in GNU Emacs emulation. See The SlickEdit Core Command Line for more information. 26 Opening SlickEdit Core Views SlickEdit Views Views complement the file opened in the editor. You can move, resize, and customize views easily. All the views and perspectives have live connectivity, meaning that if a file name or property in one view is modified, then that change stays true for that item in every area of the workspace. Views support editors and provide alternative presentations as well as ways to navigate the information in your workbench. Views also have their own menus. To open the menu for a view, click the icon at the left end of the view's title bar. Some views also have their own toolbars. The actions represented by buttons on view toolbars only affect the items within that view. A view might appear by itself, or stacked with other views in a tabbed notebook. You can change the layout of a perspective by opening and closing views and by docking them in different positions in the workbench window. Opening SlickEdit Core Views Perspectives offer pre-defined combinations of views and editors. To open a view that is not included in the current perspective, from the main menu, click Window → Show View. To open a SlickEdit Core view, click Window → Show View → Other, expand SlickEdit Views and double-click the view you want to open. Tip • You can create fast views to provide a shortcut to views that you use often. • After adding a view to the current perspective, you may want to save your new layout by clicking Window → Save Perspective As. For more information on views and the multiple operations they allow, see the Eclipse online Help. Available SlickEdit ® Core Views The views below are made available by SlickEdit® Core. Bookmarks Displays a list of bookmarks that have been set. Note that the bookmark functionality in SlickEdit® Core integrates with the Eclipse Bookmarks view. For more details, see Bookmarks. Breakpoints 27 Available SlickEdit ® Core Views Lists breakpoints (and exception breakpoints for Java) and allows you to modify them. You must use this view to set breakpoint properties. It can be used when you are not in debug mode. Right-click within the view window to display a context menu which allows you to jump to the location of a breakpoint or modify breakpoints. Note that the breakpoints functionality in SlickEdit® Core integrates with the Eclipse Breakpoints view. For more details on this topic, see Setting Breakpoints. Class Provides an outline of both the members of the current class as well as any visible inherited members. This view also shows the inheritance hierarchy of the current class, useful for object-oriented programming languages such as Java. See Class View for more information. Outline Provides an outline of symbols in the current workspace. See Outline View for more information. Find and Replace Used to perform search and replace operations. This view can also be displayed by using the key binding Ctrl+F. See Find and Replace for more information. Find Symbol Used to locate symbols which are declared or defined in your code. It allows you to search for symbols by name using a regular expression, substring, or fast prefix match. See Find Symbol View for more information. FTP Used to connect to FTP servers and open files. Right-click on files to display a menu of FTP operations. See FTP for more information. SlickEdit Output Displays output from various operations within the editor, such as errors. Preview Provides a portal for viewing information in other files without having to open them in the editor. It automatically shows this information when you are working with certain features. See Preview View for more information. References Displays the list of symbol references (uses) found the last time that you used the Go to Reference feature (Ctrl+/ or push_ref command—see Symbol Navigation for more information). See References View for more information. Regex Evaluator 28 The SlickEdit® Core Command Line Provides the capability to interactively create and test regular expressions. See The Regex Evaluator for more details. SlickEdit Search Displays the results of multi-file searches, or when the option List all occurrences is selected on the Find and Replace View. See Find and Replace for more information about searching and replacing. Slick-C® Stack Displays errors that occur within the editor. If errors occur during normal use, you can send this information to Product Support as a reference (see Contacting Product Support). If an error occurs in one of your macros, you can use this information to help debug it. Double-clicking on a line of code in this window will open the file and go to the line in the file that contains the error. Symbols Contains the symbol browser, which lists the symbols from all of the tag files. See Symbols View for more information. 29 Activating the Command Line The SlickEdit® Core Command Line SlickEdit Core provides its own command line as a means to execute most SlickEdit Core operations so you can work without taking your hands off of the keyboard. This is useful for less frequently used operations that may not warrant a key binding, or complex commands that require arguments. Note • SlickEdit® Core commands that contain two or more words are written throughout our documentation with underscore separators: for example, cursor_down. Note that in the user interface, however, these commands are displayed with hyphen separators: for example, cursordown. Both of these forms work, so you can use whichever style you prefer. • Although SlickEdit® Core shares a heritage with our stand-alone editor, SlickEdit, some SlickEdit commands may not available when the functionality is not applicable to the Eclipse environment. Activating the Command Line To activate or toggle the command line, press the key or key sequence for your emulation: • BBEdit - Esc • Brief - Esc • CodeWarrior - Esc • CodeWright - F9 • Epsilon - Alt+X or F2 • GNU Emacs - Alt+X or F2 • ISPF - Esc • SlickEdit (Text Mode edition) - Esc • Vim - Ctrl+A • Visual C++ - Esc • Visual Studio - Esc • Xcode - Esc See Emulations for more information. 30 Command Line Completions Command Line History The command line maintains a command history, allowing you to quickly reuse previously entered commands. Once the command line is open, use the arrow keys to scroll up and down in the command history. Command Line Completions As you type a command, a list of matching completions is displayed, including any command line arguments used in a previous command. Use Tab or the Down arrow to move to the next command in the list, and Shift+Tab or the Up arrow to move to the previous command. Press the Enter key to select the current command. Some commands, like set_var, prompt for arguments. SlickEdit® Core maintains a history of arguments used for each command. Use the same completion and history mechanism as described above for commands to complete arguments. Typically, the most recent argument you typed is automatically displayed. Tip Command completions are useful for discovering other useful operations. For instance, to find all operations that begin with "find", type find in the command line, and a list of those commands is displayed. Some search commands do not begin with "find", like gui_find, so you may not discover all related commands this way. To find all commands containing the word "find," use the Key Bindings dialog (click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the Key Bindings setting; alternatively, use the gui_keybindings command). See Key and Mouse Bindings for more information. For information about other items that can be automatically completed, see Completions. Disabling Command Line Completions To disable command line completions, from the main menu, click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the General setting. On the General Options dialog, select the General Tab . Uncheck the option List command line completions. Note that this option does not apply to the Vim command line. Using Shortcuts Inside the Command Line The command line is a text box control just like the text boxes that appear in various dialog boxes. For a list of key shortcuts that can be used inside the command line and other text boxes within SlickEdit® Core, see Key Shortcuts in Text Boxes. Using the Command Line to View Key Binding Associations 31 Starting a Program from the Command Line (Shelling) You can use the SlickEdit ® Core command line to determine what keys are associated with what commands, and vice-versa. Tip Alternatively, you can use the Key Bindings dialog (click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the Key Bindings setting, or, use the gui_keybindings command) to see a list of command/key binding associations. See Key Bindings Dialog for more information. Determining the Command of a Key Binding To determine the function of a key or key binding, use the what_is command (Help → What Is Key). For example: 1. Click Help → What Is Key, or activate the SlickEdit® Core command line (by pressing Esc) and type what_is (or type what and press the spacebar for auto-completion), then press Enter. 2. The message line will prompt with the text What is key. Enter the key sequence in question, and the message line will display the information. If the key or key sequence is not bound to a command, no message will appear. Determining the Key Binding of a Command To determine the key to which a command is bound, use the where_is command (Help → Where Is Command). For example: 1. Click Help → Where Is Command, or activate the command line and type where_is, then press Enter. 2. A dialog will prompt with the text Where is command. Enter the command in question. The Eclipse message area will display the key binding or state that the command is not bound to a key. Starting a Program from the Command Line (Shelling) You can use the command line to start a program. Press Esc to toggle the cursor to the command line. Type the program name and arguments and press Enter. When entering a command that the editor does not recognize as an internal command, a path search is performed to find an external program to execute. To use a program whose name contains space characters, enclose the name in double quotes. For example, "this is" will start a program named this is.exe if it exists. To get an operating system prompt, type the command dos with no arguments or from the main menu, click Tools → OS Shell. Command Line Prompting 32 Common SlickEdit® Core Commands Many commands that display dialog boxes have equivalent commands that prompt for arguments on the command line or on the Eclipse message area. For faster prompting than the dialog boxes allow, you can choose to be prompted for arguments on the command line instead. To set this option, from the main menu, click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the General setting. On the General Options dialog, select the General Tab , then select the option Command line prompting. To be more selective than this option permits, change the key bindings. For example, to be prompted only on the command line when opening files, bind the edit command to Ctrl+O, which is bound to the gui_open command by default. The following table contains a partial list of user interface commands and their command line counterparts. Table 3.1. UI Commands vs. Command Line Counterpart Graphical Command Command Line Version gui_open edit gui_find find gui_replace replace gui_write_selection put gui_append_selection append gui_margins margins gui_tabs tabs gui_find_proc find_proc Common SlickEdit® Core Commands Commands are essentially the names of functions. The following is a list of commands that we use frequently in our own work, which you may also find useful. Table 3.2. Common SlickEdit Core Commands Command Description e file Edit a file number Go to line number 33 Using the Mouse and Keyboard Command Description f symbol Find a symbol /search_string/options Search for a string c/search/replace/options Replace a string sb name Set a bookmark gb name Jump to a bookmark man command Show UNIX man page del filename Delete file dos command Execute command outside of editor math expr Evaluate expression 34 Key Shortcuts in Text Boxes Using the Mouse and Keyboard SlickEdit® Core provides four ways to launch operations: commands, menu items, key bindings, and buttons. For example, to launch the Open dialog box in order to open a file, you could use any of the following methods: • Type the gui_open command on the SlickEdit command line. • Click File → Open File. • Press the key binding F7 or Ctrl+O. The command forms the basis of each method. As you can see, commands are often bound to more than one key sequence. They can also be bound to mouse events, including the spin wheel. Key bindings are the fastest and most efficient means of executing operations. See The SlickEdit Core Command Line for more information about commands, and Key and Mouse Bindings for more information about bindings. Key Shortcuts in Text Boxes Key shortcuts for text operations (such as Cut, Copy, and Paste) can be used inside of all text boxes within SlickEdit® Core (including the command line). Tip The CUA emulation contains the shortcuts Ctrl+X, Ctrl+C, and Ctrl+V for Cut, Copy, and Paste, respectively. If you are not using the CUA emulation, by default, these key bindings still work inside of text boxes. To deactivate this feature, from the main menu, click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the General setting. On the General Options dialog, select the More Tab , then clear the option CUA Text Box. Text Box Editing Keys The table below contains a list of the key shortcuts (based on the CUA emulation) that can be used inside the command line and other text boxes within SlickEdit Core. Table 3.3. Text Box Editing Key Key or Key Sequence Operation Insert Insert mode toggle Spacebar Expand partially-typed parameter or insert a space 35 Key Shortcuts in Text Boxes Key or Key Sequence Operation ? List matches to partially-typed parameter Ctrl+Shift+O Expand alias Ctrl+E Cut to end of line Ctrl+Backspace Cut line Ctrl+K Copy word to clipboard Ctrl+Shift+K Cut word Ctrl+Shift+L Lowercase word Ctrl+Left arrow Previous word Ctrl+Right arrow Next word Ctrl+V Paste Ctrl+X Cut Ctrl+C Copy Ctrl+Shift+X Append cut Ctrl+Shift+C Append to clipboard Ctrl+Shift+V List clipboards Shift+Home Select text between cursor and beginning of line Shift+End Select text between cursor and end of line Shift+Click Extend selection to mouse position Backspace Delete previous character or selection Delete Delete character under cursor or selection Left arrow Move cursor left Right arrow Move cursor right 36 Redefining Common Keys Key or Key Sequence Operation End Move cursor to end of line Home Move cursor to beginning of line Double-click Select word Triple-click Select line Redefining Common Keys Many users have a preference for the functions of the keys Backspace, Delete, Enter, Tab, and Home. The Redefine Common Keys dialog is designed for changing the function of these keys. To access this dialog, from the main menu, click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the Redefine Common Keys setting. Figure 3.5. Redefine Common Keys Dialog 37 Redefining Common Keys In the Key list box, select the name of the key that you want to configure. The commands available for that key are then displayed in the Command list box. Additional options can be set using the check boxes. Click the Tab Options button to change the function of the Tab key. The Indent tab of the Extension Options dialog box is displayed. For more information on changing Tab key functions, see Indenting with Tabs . For descriptions of all the elements on the Redefine Common Keys dialog, see Redefine Common Keys Dialog. 38 Chapter 4. User Preferences 39 Global Preferences Introduction to User Preferences SlickEdit® Core can be customized to accommodate your own individual preferences. Most user preference information is available by clicking Window → Preferences, expanding SlickEdit and clicking General in the tree. User preferences are broken into two categories: preferences that apply to all languages (global preferences), and preferences that apply to specific language extensions. Tip If you are using SlickEdit Core in a multiple user environment, each user must pass a local directory to eclipse using the command line flag -vsconfig. This allows each user to have their own configuration. If making modifications to vslick.ini, make a local copy of this file and place it in the -vsconfig directory file. See Changing the Configuration Directory for more information. Global Preferences Global preferences that can be set include the following: • Emulation modes (see Emulations) • Fonts and colors (see Setting Fonts and Colors) • Auto Restore settings (see Restoring Settings on Startup) Other global preferences, such as search settings, selection styles, etc., can be configured by using the General Options dialog (click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the General setting). These options are described in the documentation on a contextual basis. For a flat listing of the options on the General Options dialog, see General Options Dialog. Extension-Specific Preferences The behavior of the editor can be customized for files based on specific language extensions. Indent, Word Wrap, Commenting, Auto-Complete, Context Tagging ®, and other code-style settings are all extension-specific. These settings are located on the Extension Options dialog (click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the File Extension Setup setting). The options are described in the documentation on a contextual basis. For a flat listing of the options on the Extension Options dialog, see Extension Options Dialog. For more information about working with language extensions, see Language-Specific Editing Overview. 40 Supported Emulations Emulations Emulation is the process of imitating another program. SlickEdit® Core provides emulations of key bindings for 13 editors so that you can use the style to which you are accustomed, making your coding experience as efficient as possible. The Key Bindings dialog allows you see what keys or key sequences are bound to what commands. Emulation charts are also available as printable PDF documents in the docs subdirectory of your SlickEdit Core installation directory. See Key and Mouse Bindings for more information. Supported Emulations This section lists each emulation mode and any special notes. • BBEdit • Brief - This emulation relies heavily on Alt key bindings. In addition to Brief emulation support, SlickEdit® Core also supports Brief regular expressions. See Regular Expression Syntax for more information. • CodeWarrior • CodeWright • CUA - CUA is an acronym for Common User Interface, a standard set of user interface guidelines similar to those used in Microsoft products. This is the default emulation mode used by SlickEdit Core. • Epsilon - This emulation relies heavily on Ctrl+X and Escape (meta) key bindings. • GNU Emacs - This emulation relies heavily on Ctrl+X and Escape (meta) key bindings. It does not include an Emacs Lisp emulator. • ISPF - Support is included for ISPF prefix line commands, the ISPF command line, rulers, line numbering, and some XEDIT extensions. In addition to the ISPF emulation charts, additional documentation about using this emulation is available—see Using the ISPF and XEDIT Emulations. • SlickEdit® (Text Mode Edition) • Vim - The Vim emulation contains special keys and key sequences that are case-sensitive. A plus (+) sign separates the simultaneous key presses. For example, the key binding Ctrl+x,k, which closes the current file, indicates to press at the same time the Ctrl key and lowercase x, release, then press k to insert the lowercase k. Another example is the key binding gP, which pastes the text before the cursor. Press the G key (which inserts a lowercase g), release, then press Shift plus p at the same time (which inserts the uppercase P). • Visual C++ 6 • Visual Studio - The key bindings provided for the Visual Studio emulation are not the same as the key bindings used in Visual C++, but there might be some overlap. If Microsoft Visual Studio does not 41 Changing Emulations provide a default key binding for a particular SlickEdit Core command, the corresponding Visual C++ key binding is used. • Xcode Changing Emulations After SlickEdit® Core is installed, you are prompted to choose an emulation. CUA is the default emulation mode. Key bindings and shortcuts mentioned in our documentation are based on this emulation. You can change emulation modes at any time: Click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the Emulation setting. Figure 4.1. Emulation Options You should save custom key/mouse bindings for the current emulation before switching emulations. You can do this by exporting your custom bindings using the Key Bindings dialog (see Exporting and Importing Bindings), or you can save using the prompt that appears when switching emulations. Figure 4.2. Emulation Prompt 42 Determining Keys/Functions By saving your custom key bindings when you switch emulations, when you return to the original emulation those bindings are automatically available. For example, if you have created and saved custom bindings in the CUA emulation, and then switch to Vim, switching back to CUA will make your custom bindings for CUA available again. To remove custom key bindings for an emulation, resetting to the defaults, select the Restore to default key bindings option in the Emulation settings. See Managing Bindings for more information on working with custom bindings. Determining Keys/Functions When/if you switch emulations, the key bindings that are assigned to commands change according to the emulation chosen. You can use the Key Bindings dialog to look up what command is bound to what key or key sequence (or vice-versa), or you can use the SlickEdit® Core menu and command line to determine these items. See Key and Mouse Bindings and Using the Command Line to View Key Binding Associations for more information. 43 What is a Binding? Key and Mouse Bindings Key and mouse bindings are quick ways to execute operations in SlickEdit® Core. Key bindings are the most efficient. Time is wasted each time you lift your hand from the keyboard to grab the mouse, and more time is wasted when you move your hand back to the keyboard in preparation for more typing. Therefore, if you learn the key bindings associated with operations that you use most frequently, you will save time coding. If an operation you use frequently isn’t already bound by default, create your own easyto-remember binding. What is a Binding? A key or mouse binding is a key sequence or mouse event associated with a command. Key terms are defined as follows: • Mouse event - The clicking of any button or motion of the mouse wheel. • Key sequence - A series of one or more keys or key combinations. For example, Ctrl+X,R. • Key combination - Two or more keys pressed simultaneously. For example, Ctrl+O. • Key - Any single key on the keyboard. An example of a key binding with one key combination is Ctrl+O (in CUA emulation, associated with the gui_open command and File → Open File). The plus (+) sign between the keys indicates that these keys must be pressed simultaneously: press the Ctrl and O keys at the same time. Note that the last key is case-insensitive. You do not need to press Shift. An example of a key binding with a key sequence is Ctrl+X,R (in Vim emulation, this binding is associated with the redo command and Edit → Redo). The comma (,) indicates that each key must be pressed consecutively: press Ctrl and X at the same time, release, then press the R key. To view or change bindings, create new bindings, and export/import custom bindings, see Managing Bindings. The available key bindings change depending on the selected emulation. While SlickEdit® Core provides emulations for 13 editors, CUA is the default emulation, so key bindings listed throughout the documentation will be for the CUA emulation. To change the emulation mode, click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the Emulation setting. For more information, see Emulations. Note • For documentation purposes, both mouse events and keys that are bound to commands are often referred to collectively as key bindings. • The main menu displays the key bindings for commands associated with each menu entry. See Menus Accessing Menus and Creating and Editing Menus for more information. 44 Managing Bindings • A menu hotkey is a key sequence that corresponds to an underlined letter on a menu name. Managing Bindings Create and manage key bindings using the Key Bindings dialog. The dialog displays a list of all SlickEdit® Core commands, including macros that you have recorded, their associated key sequences, and the language editing mode in which the key binding can be used. Documentation for the selected command, if available, is also displayed. The Key Bindings dialog provides capabilities to incrementally search by command or by key sequence, export and import custom bindings, save an HTML chart of your bindings, and run a selected command or user-recorded macro. To access the Key Bindings dialog, click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the Key Bindings setting, or use the gui_keybindings command. The first time the Key Bindings dialog is invoked, the Building Tag File progress bar may be displayed while Slick-C® macro code is tagged. Figure 4.3. Key Bindings Dialog 45 Managing Bindings Bindings are based on the editor emulation mode (CUA is the default). The title bar of the Key Bindings dialog shows the current emulation. (To change the emulation mode, see Changing Emulations.) The Search by command and Search by key sequence boxes are used to filter the data. See Viewing and Filtering Bindings. The Command column shows all of the SlickEdit Core commands including macros that you have recorded. The Key Sequence column shows the key sequence or mouse event to which the command/macro is bound. If there is no binding, this field is empty. The Mode column shows the language editing mode to which the binding is assigned. The Recorded column indicates if the item is a command (No) or userrecorded macro (Yes). Tip What is a language editing mode? SlickEdit Core uses the extension of the current file to determine what language you are using, thereby only making available the options and features that are possible or useful in that language. You can also manually set the language editing mode. See 46 Managing Bindings Language Editing Modes for more information. The bottom of the dialog contains documentation (if available) for the selected command. Columns can be sorted by clicking on the column headers. An up or down arrow in the column header indicates ascending or descending sort order. All of the columns as well as the documentation pane can be resized by dragging the separator bars. The sections below describe different ways to use the Key Bindings dialog. For a listing and descriptions of elements on this dialog, see Key Bindings Dialog. Viewing and Filtering Bindings You can filter the data in the Key Bindings dialog by using the Search by command and Search by key sequence boxes at the top. This is useful for finding a command/macro for creating, editing, or removing a binding, and for determining what key sequences are associated with a command/macro and viceversa. • To find a command/macro, search for it by entering a string in the Search by command box. The column of commands is filtered incrementally as you type, to show only commands that contain the specified string. Commands that have more than one key sequence associated with them are listed on separate rows. For example, in CUA emulation, the command gui_open is bound to F7 and Ctrl+O. Therefore, gui_open appears in the Command column three times–one row per key sequence. • To find a key sequence, place the focus in the Search by key sequence box (by tabbing or using the mouse) and then press the actual key or key sequence. The column of key sequences is filtered to show only bound sequences that contain the specified key(s). For example, to see all commands/macros that are bound to Ctrl+O, with the focus in the search box, simply press Ctrl+O. To clear either field, click the red X button to the right of each box. This is especially handy for the key sequence search, due to the fact that the field recognizes any keyboard/mouse input including Backspace. Alternatively, you can use the what_is and where_is commands (Help → What Is Key and Help → Where Is Command) on the SlickEdit Core command line to determine binding associations. See Using the Command Line to View Key Binding Associations for more information. Creating Bindings You can work more efficiently if you create key/mouse bindings for commands or user-recorded macros that you use frequently. To create a new key or mouse binding: 1. Using the Key Bindings dialog, find the command or user macro you want to bind. You can search for a command/macro by entering a string in the Search by command box (see Viewing and Filtering Bindings). 2. Initiate the binding by using one of the following methods: • Select the row, then click the Add button. • Select the row, then press Enter. 47 Managing Bindings • Double-click on the row. 3. When you initiate a binding, the Bind Key dialog is displayed with focus in the Key Sequence box. Figure 4.4. Bind Key Dialog • For a key binding, press the key sequence just as you would to use it. For example, to bind surround_with to Ctrl+W, simply press Ctrl+W. The key sequence you pressed is displayed in the box. • For a mouse binding, click the mouse button you want to use. For example, to bind surround_with to the right-click mouse event, simply right-click with the mouse, and RButtonDn is displayed in the box. Use the red X button to clear the input field if you make a mistake. If you enter a key sequence or mouse event that is already assigned to another command/macro, a warning prompt is displayed. If you continue, the previous binding is unbound and reassigned. Tip • SlickEdit Core allows key sequences that are very long, but shorter sequences are easier to remember and more practical to use. • Do not begin key sequences with keys that are normally used in typing. Otherwise, these keys will launch the operation and not appear when you type. For example, binding a command to the A key will prevent you from using that letter in your code. It is best to always begin your key sequences with a Ctrl or Alt key combination. 4. The default language editing mode is the default language editing mode for new bindings, which means the binding will work in all language editing modes. If you want the binding to work only in a 48 Managing Bindings specific language editing mode, you can change it now by clicking the Advanced button on the Bind Key dialog. Click Bind to mode, then from the drop-down list, select the mode for which the binding should apply. Bindings assigned to a specific language editing mode override those assigned to default. Tip You can create multiple bindings for the same command/macro and have one binding set to default and the others set to specific modes. In this case, when you are editing in a specified mode, that binding is in effect, and when editing in any other language editing mode not specified, the default binding will be in effect. For example, in CUA emulation, Ctrl+L is bound to select_line by default, but when in HTML mode, you may want to use Ctrl+L to insert an HTML link instead (insert_html_link command). Therefore, you can bind Ctrl+L to insert_html_link and specify the HTML mode for use only when editing HTML files. 5. When finished, click Bind. The key sequence or mouse event now appears in the Key Sequence column on the Key Bindings dialog. Editing Bindings To change the binding or language editing mode for a command/macro that is already bound, you will need to first unbind the command/macro, then recreate it. See Removing Bindings and Creating Bindings. If you have advanced knowledge of SlickEdit® Core, you can edit the Slick-C® key binding source directly. See Editing the Key Binding Source for more information. Removing Bindings To remove a binding: 1. Using the Key Bindings dialog, find the command/user macro or key sequence that you want to unbind. You can search by using the search boxes at the top (see Viewing and Filtering Bindings). 2. With the command/macro row selected, click Remove, or press Delete. You are prompted to confirm the unbind operation. Exporting and Importing Bindings Key and mouse bindings can be exported out of the editor and imported in, useful for creating backups, sharing with other team members, or taking with you should you switch computers. Exporting Bindings When you export bindings using the Key Bindings dialog, custom bindings for all language editing modes in the current emulation are exported into an XML file with a name and location that you can specify. To export your bindings: 1. Click the Export button on the Key Bindings dialog. The Save As dialog is displayed. 49 Key Binding Settings 2. If you want, change the directory location and change the file name to something more meaningful to you, such as myname_cua.xml. 3. Click Save. Importing Bindings Imported bindings override any existing bindings for the selected emulation. For example, if you have the surround_with command bound to Ctrl+W, and import surround_with bound to Ctrl+Q, then Ctrl+Q is now the binding for that command in the selected emulation. When you import for the selected emulation, SlickEdit® Core resets the key bindings to the default, then loads the user key bindings. If you import a key bindings file from a different emulation than the one currently selected, a warning is displayed that prompts whether or not you want to continue. If you continue, the emulation mode is changed and the key bindings are loaded for that emulation. To import bindings: 1. Click the Import button on the Key Bindings dialog. The Open dialog is displayed. 2. Find and select a bindings file that was previously exported, then click Open. Saving a Bindings Chart Click the Save Chart button on the Key Bindings dialog to save an HTML reference chart of all current bindings for all language editing modes in the selected emulation. Commands and user macros that are not bound are not included. Running a Command/Macro using the Key Bindings Dialog If you have the Key Bindings dialog open, you can conveniently run a selected command or user-recorded macro by clicking the Run button. Resetting Default Bindings To reset bindings for the selected emulation to the SlickEdit ® Core defaults, from the main menu, click Window → Preferences, expand SlickEdit and click Emulation in the tree, then select the Restore to default key bindings option. See Emulations for more information. Key Binding Settings The following are settings that you can make pertaining to key bindings. Key Message Delay For key bindings that contain multiple key combinations, like Ctrl+X,Ctrl+C, you can specify the maximum delay between the two combinations. If that time limit is exceeded, this key sequence will be interpreted as two separate bindings, executing the command bound to Ctrl+X followed by the command 50 Cursor, Mouse, and Scroll Settings bound to Ctrl+C, rather than the command bound to Ctrl+X,Ctrl+C. To change this option, click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the General setting. On the General Options dialog, select the More Tab . In the Key message delay spin box, enter the amount to delay before a prefix key in tenths of a second. The prefix key is not displayed if the next key is pressed before the delay specified in this text box. Using Shorter Key Names in Menus The main menu displays the key bindings for commands associated with each menu entry. These bindings can be condensed for non-CUA emulations. See Menus for more information. 51 Setting the Cursor Style Cursor, Mouse, and Scroll Settings This section describes settings for the cursor, mouse, and scroll style. For cursor navigation information, see Cursor Navigation. Setting the Cursor Style You can use a text mode style cursor instead of a vertical cursor. To set this option, from the main menu, click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the General setting. On the General Options dialog, select the More Tab , then select the option Use block cursor. Hiding the Mouse Pointer To hide the mouse pointer when typing, from the main menu, click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the General setting. On the General Options dialog, select the More Tab , then select the option Hide mouse pointer. The mouse pointer is then only displayed when moving the mouse or when a dialog box is displayed. Displaying Tool Tips By default, hovering the mouse pointer over a button displays a tool tip about the item. To turn tool tips off or to change the amount of time before tool tips are displayed, from the main menu, click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the General setting. On the General Options dialog, select the More Tab , then clear the option Show tool tips, or change the value in the Delay spin box. The Delay value is in tenths of a second. Scroll Style Settings To set the scroll style, select the More Tab on the General Options dialog, then select the Scroll style setting that you wish to use. Commands that move the cursor more than one page of text, such as searching, always center scroll text into view. The following scroll settings are available: • Center - When center scrolling is on and the cursor moves out of view the cursor will be centered and the text will move by half the height or width of the window. • Smooth - Smooth scrolling is a line by line scroll of the screen that occurs when the cursor moves out of view. Smooth scrolling is the default configuration. • Scroll when - Specifies how close (in number of lines) the cursor may get to the top or bottom of the window before scrolling occurs. Does not affect horizontal scrolling. 52 Fonts Setting Fonts and Colors The SlickEdit® Core editor and views do not use the Eclipse color and font settings. To change the fonts and colors in the SlickEdit Core editor and views, change the color and font settings using the SlickEdit Core options. For information about changing the colors of code, such as colors used for keywords, see Color Coding. Fonts SlickEdit® Core provides the capability to change the fonts used by edit windows, the command line, status text, and other screen elements. Recommended fonts are listed. You can also set fonts for editor windows. Tip Xft fonts are supported on Linux. Setting Fonts for Screen Elements To configure font settings for screen elements, use the Font Configuration dialog. To access this dialog, from the main menu, click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the Font setting. Figure 4.5. Font Configuration Dialog 53 Fonts For descriptions of the options on this dialog, see Font Configuration Dialog. Recommended Fonts for Elements Font recommendations are given for the best screen display. The information below contains recommended fonts for some of the screen elements. Note Some font names are portable font names which are translated into other fonts. This allows SlickC® macros and dialog boxes to be portable across Windows and UNIX. Command Line Fonts The following table contains recommendations, based on the operating system, for the Command Line 54 Colors font element: Table 4.1. Command Line Font Recommendations Platform Font Recommendation Windows Choose Courier, Courier New, OEM Fixed Font, or Terminal fonts for the most visually appealing character displays. Linux Choose Courier, Lucida Sans Typewriter or a console font for the most visually appealing character displays. If these fonts are not visible, look for the UNIX fonts below. UNIX Choose Adobe Courier, B&H Lucida Typewriter, or Width x Height family fonts for the most visually appealing fixed fonts. Selection List Fonts Choose Courier for best display of selection lists that need a fixed font. Dialog Box Fonts Choose MS Sans Serif as an attractive font for dialogs. Text Box Fonts Choose System or MS Sans Serif for fonts used in text boxes. SBCS/DBCS Source Window Fonts This is the element used for all non-Unicode source windows. Choose Terminal for the most attractive visual display. Unicode Source Window Fonts Default Unicode Font is the default font for the Unicode Source Windows element. When this font is selected, the Arial Unicode MS font is used if it is installed. Otherwise, the ANSI Fixed Font is used, which only supports the English character set. Arial Unicode MS is a fairly complete font which is included with Microsoft Office. Currently, no version of Windows ships with a complete Unicode font. For more information on Unicode support, see Using Unicode. Colors Use the Color Settings dialog (click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the Color setting; alternatively, use the color command) to set the color for differ55 Setting Colors for Screen Elements ent screen elements in SlickEdit® Core. This includes syntactic elements in the editor window, like keywords, comments, strings, etc. as well as other user interface elements like the message area or the status line. Window colors and backgrounds are set using the facilities provided by the operating system. Color and Color Coding are different. Color Coding is a feature that combines current line coloring, modified line coloring, and language-specific coloring. SlickEdit Core recognizes and automatically displays color support for many languages. See Color Coding for more information. Setting Colors for Screen Elements Colors can be customized in the user interface. Colors can be set either individually or by editing a scheme. To change the default colors, complete the following steps: 1. From the main menu, click Window → Preferences, expand SlickEdit and click General in the tree, then double-click the Color setting (or use the color command). The Color Settings dialog box is displayed. Figure 4.6. Color Settings Dialog 2. Select the element you want to change from the Screen element list box (for descriptions of some of these elements, see Color Settings Dialog). 3. Set the Foreground and Background colors by clicking on the color squares. The Color Picker dialog 56 Setting Colors for Screen Elements is displayed, allowing you to pick a color from the palette, or set your own custom color using RGB values. Note If you have chosen the Selection screen element, note that SlickEdit Core will attempt to render selections using your normal color settings for the Foreground color. The selected foreground color will only be used if there is not enough contrast between the font colors to be readable. It is best to specify a Background color for selections that is as close as possible to your normal background color, ensuring that the color-coded fonts are still easy to read. 4. If you change the background color for an element in the editor window, you can use the Sync Backgrounds button to propagate the background color for the currently selected element to other related elements. For example, if you change the background color for Keywords you will probably want that same color used for Strings, Comments, Numbers, etc. The Sync Backgrounds button prevents you from having to manually make all these changes. 5. If you want, choose a Font Style for the text. 6. Click Apply to update the colors that you have modified without closing the dialog box, or click OK to apply the changes and close the dialog. For a complete list of all of the options available on the Color Settings dialog, see Color Settings Dialog. Using Color Schemes Color schemes store the settings for all screen elements, allowing you to quickly change the look of your editing environment. Several predefined color schemes are provided, and you can create your own. To use color schemes, click the Schemes button on the Color Settings dialog (see the previous screen shot). To try a different color scheme, from the Color scheme drop down text box, select a color scheme and click Apply. A sample of the color scheme is displayed in the Sample text box. To use this color scheme, click OK. To define a new color scheme, set your colors for the various screen elements and click Save Scheme. User-defined color schemes are stored in the uscheme.ini file located in your configuration directory. You can change the name of a scheme by clicking Rename Scheme. Setting an Embedded Language Color The option Set embedded language color allows you to specify the colors used for embedded languages. These occur when a file of one type embeds a language of another type within it, like HTML files containing JavaScript. For HTML, the syntax color coding recognizes the