
SlickEdit - Detailed Review
Coding Tools

SlickEdit - Product Overview
Introduction to SlickEdit
SlickEdit is a cross-platform, multi-language code editor, text editor, and Integrated Development Environment (IDE) developed by SlickEdit Inc. This powerful tool is geared towards professional programmers and development teams who need a comprehensive and efficient coding environment.Primary Function
The primary function of SlickEdit is to provide a feature-rich platform for coding, debugging, and managing large-scale projects. It supports over 70 programming languages, including C, C , C#, Java, JavaScript, Python, and many more. This makes it an ideal choice for developers working on diverse projects across various platforms such as Windows, macOS, Linux, AIX, HP-UX, and Solaris.Target Audience
SlickEdit is targeted at professional developers, software engineers, and development teams who require advanced features to streamline their coding processes. Its user base includes those involved in web development, iOS and Android development, desktop development, and even mainframe development.Key Features
Language Support and Editing
SlickEdit offers extensive language support with features like syntax highlighting, color coding, smart indenting, and SmartPaste. It also includes code beautifiers and syntax expansion to reduce the number of keystrokes required.Context Tagging and Symbol Browsing
The editor features Context Tagging, which builds a database of symbols in your source files, enabling accurate completion information and rapid navigation to symbol definitions or declarations.Debugging and Integration
SlickEdit includes integrated debuggers for various languages and tools such as GNU C/C , Java, WinDbg, Clang C/C , and more. It also integrates with source control systems, compilers, debuggers, profilers, and analyzers.Utilities and Tools
The editor comes with a range of utilities, including DIFFzilla for file comparisons, 3-Way Merge, spell checking, FTP, a RegEx Evaluator, and even a built-in calculator. These tools help in managing and analyzing code efficiently.Large File Handling
SlickEdit is capable of handling very large files, up to 2 Terabytes in size, making it suitable for projects that involve massive codebases.Customization and Scripting
The editor uses Slick-C, a proprietary scripting language, which allows users to customize and extend the editor’s functionality. This includes modifying key bindings, creating macros, and more.User Support
SlickEdit provides comprehensive support through its website, including a Quick Start guide, user forums, and technical support options for registered users. In summary, SlickEdit is a powerful and versatile coding tool that caters to the needs of professional developers by offering a wide array of features, extensive language support, and seamless integration with other development tools.
SlickEdit - User Interface and Experience
User Interface
The user interface of SlickEdit is highly customizable, which is a significant advantage for users familiar with other editors. It includes 15 different editor emulations, such as Vim, Emacs, and Visual Studio, allowing users to work with key bindings and selection styles they are already comfortable with.
SlickEdit features various tool windows that provide quick access to important information about your code, including syntax highlighting, color coding, and special windows for viewing file information, classes, symbols, and definitions. These visual indicators help users access information quickly and efficiently.
Ease of Use
Despite its extensive feature set, SlickEdit aims to make coding more accessible and faster. The Quick Start Configuration Wizard helps new users get up and running quickly by configuring the most commonly changed options and setting up a workspace and project. This wizard simplifies the initial setup process, making it easier for users to start using the editor effectively.
The editor also emphasizes keeping hands on the keyboard, reducing the need to use the mouse. Users can define their own key bindings or invoke editor operations from the command line, which helps in maintaining workflow efficiency.
User Experience
SlickEdit’s user experience is enhanced by several key features:
- Code Completion and Expansion: The editor includes features like completions, syntax expansion, aliases, macros, and code templates that reduce the number of keystrokes needed, making coding faster and more efficient.
- Code Beautifiers and Formatters: Built-in “beautifiers” and automatic formatting features such as syntax indenting, SmartPaste®, and code beautifiers help maintain clean and readable code.
- File Management and Integration: SlickEdit supports opening Visual Studio solutions and Xcode projects as workspaces and includes tools like DIFFzilla for file comparisons and FTP for accessing remote repositories. This integration with other tools makes it a comprehensive coding environment.
Customization and Support
Users can customize many aspects of SlickEdit, including individual keystrokes and the behavior of the editor through its proprietary scripting language, Slick-C. This language, which resembles C with elements from REXX, allows users to modify the editor’s behavior to suit their needs.
Additionally, SlickEdit offers extensive support, including a web forum where users can help each other, and for those with a Maintenance and Support Service subscription, unlimited technical support via telephone or email.
Overall, SlickEdit’s user interface is designed to be highly customizable and efficient, making it a powerful tool for coders who value speed, productivity, and ease of use. However, it is worth noting that the sheer number of features can make the initial learning curve steep, requiring users to spend time to fully leverage its capabilities.

SlickEdit - Key Features and Functionality
Overview
SlickEdit is a comprehensive and feature-rich code editor, text editor, and Integrated Development Environment (IDE) that offers a wide range of tools and functionalities to enhance coding efficiency and productivity. Here are the main features and how they work:Context Tagging and Symbol Analysis
SlickEdit uses Context Tagging to build a database of symbols in your source files. This feature allows for accurate completion information and rapid symbol lookup. In the Pro version, you can instantly jump from a symbol to its definition or declaration, and preview definitions without opening the file.Code Completion and Expansion
The editor includes features like completions, syntax expansion, aliases, macros, and code templates to reduce the number of keystrokes. These tools help in auto-completing code, expanding syntax, and inserting predefined code snippets, making coding faster and more efficient.Editor Emulations and Key Bindings
SlickEdit supports 15 editor emulations, including keyboard and selection styles, allowing users to work with familiar key bindings. You can define your own key bindings or use the predefined ones to perform common tasks without reaching for the mouse.Code Formatting and Beautifiers
The editor includes automatic formatting features such as syntax indenting, SmartPaste®, and code beautifiers (available in the Pro version). These features ensure that your code is well-formatted and readable, saving time and effort.Debugging and Integrated Builds
SlickEdit Pro includes integrated debuggers for various languages and environments, such as GNU C/C , Java, WinDbg, Clang C/C , and more. It also supports integrated builds, allowing you to compile and debug your code directly within the editor.File and Version Control
The editor supports version control integration and powerful file differencing tools like DIFFzilla, which can compare and edit large files efficiently. The Pro version also includes version control support with shelving and Java Live Errors.Large File Capabilities
SlickEdit can handle files up to 2 Terabytes in size, making it capable of editing large files effortlessly. This is particularly useful for projects involving massive datasets or large codebases.Multi-Language Support
SlickEdit supports over 76 programming languages and file types, including C, C , Java, JavaScript, PHP, HTML, and many more. It allows users to add support for additional languages and modify the existing language support as needed.Operating System Compatibility
The editor runs on multiple operating systems, including Windows, MacOS, Linux, AIX, HP-UX, Solaris, and can even run on FreeBSD systems configured for Linux binary compatibility.Tool Integration
SlickEdit integrates with other tools such as source control systems, compilers, debuggers, profilers, and analyzers, making it a versatile tool for various development needs.Visual Indicators and Tool Windows
The editor uses visual indicators like syntax highlighting and color coding to provide information about your code. Special tool windows are available for viewing information about files, classes, symbols, and more.Utilities and Tools
SlickEdit includes various utilities such as a RegEx Evaluator, math commands, a calculator, FTP, and a spell checker, which can be useful in different aspects of coding and development.AI Integration
While SlickEdit does not explicitly highlight AI-driven features, its advanced context tagging, code completion, and syntax expansion can be seen as leveraging sophisticated algorithms to enhance coding efficiency. These features, although not labeled as AI, use complex logic to provide intelligent code suggestions and navigation, which are akin to AI-driven functionalities.Conclusion
In summary, SlickEdit is a powerful tool that streamlines coding processes through its extensive set of features, making it an invaluable asset for developers working with a wide range of programming languages and environments.
SlickEdit - Performance and Accuracy
Performance
- SlickEdit is optimized for speed, offering fast startup times and efficient handling of large files, with the capability to edit files up to 2 TB in size.
- The editor utilizes advanced block matching algorithms, rewritten in C for languages like XML, HTML, and several others, which enhances performance and adds new features.
- It supports multiple cursors and selections, reducing the time spent on repetitive tasks and improving overall productivity.
Accuracy
- SlickEdit features advanced code analysis tools, including Context Tagging®, which builds a database of symbols in your source files. This allows for accurate completion information and rapid symbol navigation.
- The editor includes smart editing features such as smart indenting, smart tabs, and SmartPaste®, which help maintain code consistency and reduce errors.
- It also offers integrated debugging tools, beautifiers, and version control support, which contribute to the accuracy and maintainability of the code.
Key Features
- Syntax Highlighting and Color Coding: SlickEdit provides comprehensive syntax highlighting and color coding for over 70 languages, including new support for languages like TOML and Django.
- Code Completion and Refactoring: The editor offers advanced code completion, syntax expansion, and refactoring tools that help in writing code efficiently and accurately.
- Version Control and Debugging: It integrates well with version control systems and includes powerful debugging tools, which are essential for ensuring the accuracy and reliability of the code.
Limitations and Areas for Improvement
- Learning Curve: SlickEdit has a steep learning curve due to its extensive set of features and highly configurable environment. This can be overwhelming for new users.
- Cost: While SlickEdit offers a free trial, the pricing can be a barrier for some users. The Standard edition is $125, and the Pro edition, which includes additional features like symbol analysis and integrated builds, is $299.
- Customization: Although SlickEdit is highly customizable, which is a strength, it also means that users need to invest time in setting up the environment to their liking. This can be time-consuming, especially for those who are not familiar with the Slick-C language used for custom macros.
Conclusion
In summary, SlickEdit stands out for its performance, accuracy, and comprehensive set of features tailored for developers. However, it requires a significant investment of time to fully leverage its capabilities, and the cost may be prohibitive for some users.

SlickEdit - Pricing and Plans
SlickEdit Pricing Plans
SlickEdit, a versatile and powerful code editor, offers two main pricing plans: the Standard Edition and the Pro Edition.
SlickEdit Standard Edition
- Price: $125 (one-time payment)
- Key Features:
- Syntax expansion and indenting
- SmartPaste®
- Keystroke emulations
- Multiple cursors and selections
- Backup History
- Macro recording in Slick-C
- Ability to edit files up to 2 TB.
SlickEdit Pro Edition
- Price: $299 (one-time payment)
- Features:
- Includes all features from the Standard Edition
- Symbol analysis and navigation
- Debuggers
- Integrated builds
- Beautifiers
- Diffzilla with editing and folder diff support
- Version control support with Shelving
- Java Live Errors
- JUnit Integration
- Unlimited macro development in Slick-C.
Free Trial
For those who want to test the software before committing to a purchase, SlickEdit offers a free 15-day trial. This trial includes support from the SlickEdit team, allowing users to experience the full range of features before deciding on a plan.
Summary
In summary, SlickEdit provides a clear and straightforward pricing structure with two distinct tiers, each catering to different levels of user needs and preferences.

SlickEdit - Integration and Compatibility
Integration with Development Tools
SlickEdit integrates well with various development tools and version control systems. For instance, the SlickEdit Tools for Visual Studio extension enhances the Microsoft Visual Studio environment with features such as comment wrapping, auto code documentation, and version visualizations. This integration allows developers to see version details directly in the editor, similar to CVS’s Annotate or SVN’s Blame features, and conduct thorough code reviews by searching across versions of files.
SlickEdit also supports integration with multiple debuggers, including GNU C/C , Java, WinDbg, Clang C/C LLDB, and others, making it a comprehensive tool for debugging across different programming languages.
Version Control Systems
The tool is compatible with several version control systems, including Team Foundation Server, Visual Source Safe, CVS, and SVN. The Versioning Toolbox in SlickEdit allows users to find versions of files, compare different versions, and generate version reports, all of which can be printed or saved as HTML.
Platform Compatibility
SlickEdit is highly compatible across various operating systems. It runs on Windows, MacOS, Linux, AIX, HP-UX, and Solaris (both SPARC and x86). This cross-platform capability makes it a versatile choice for developers working in different environments.
File and Language Support
SlickEdit supports over 76 programming languages and file types, including C, C , C#, Java, JavaScript, HTML, PHP, XML, and many others. It can also open Visual Studio solutions and Xcode projects as workspaces, making it a flexible tool for developers working on diverse projects.
Large File Handling
One of the standout features of SlickEdit is its ability to handle large files, up to 2 Terabytes in size, which is limited only by system resources. This capability, along with tools like DIFFzilla for file comparisons, makes SlickEdit highly efficient for managing large and complex codebases.
Customization and Scripting
SlickEdit includes Slick-C, a proprietary scripting language that allows users to customize the editor’s behavior. Much of the editor is written in Slick-C, and users have access to the source code, enabling them to modify and extend the editor’s functionality according to their needs.
Conclusion
In summary, SlickEdit’s integration with various development tools, its compatibility with multiple version control systems, and its support for a wide range of operating systems and programming languages make it a highly versatile and effective tool for developers.

SlickEdit - Customer Support and Resources
Customer Support
Technical Support
- SlickEdit provides unlimited technical support via telephone or email for users who subscribe to their Maintenance and Support Service. This service is available for 12 months and includes access to new releases, upgrades, and fixes at no additional charge.
- Users can check the status of their Maintenance and Support Service directly from within the SlickEdit application by going to the menu item
Help → Check Maintenance
.
Resources
- User Guide and Documentation: SlickEdit offers an extensive user guide that includes detailed information on installation, new features, supported languages, and performance tuning. The guide also covers how to use various features such as workspaces, projects, and editing tools.
- FAQ Page: Users can access a FAQ page on the SlickEdit website, which addresses common questions and issues.
- Cool Features: SlickEdit provides a section in the application where users can learn about and watch demos of its cool features, helping them to quickly get familiar with the editor’s capabilities.
- Quick Start Configuration Wizard: This wizard helps users configure the most commonly changed options and set up a workspace and project quickly, ensuring they can start using SlickEdit efficiently right away.
- Tool Integration: SlickEdit integrates with various tools such as source control systems, compilers, debuggers, profilers, and analyzers, which can be learned about through the Tools and Utilities chapter in the user guide.
Additional Support Channels
Registration and Updates
- Registering the product allows users to receive automatic notifications of free updates and new releases. Users can register their product from within SlickEdit by going to
Help → Register Product
.
Contact Information
- For any queries or to subscribe to the Maintenance and Support Service, users can contact SlickEdit Sales directly via email at
sales@slickedit.com
.
By leveraging these support options and resources, users of SlickEdit can ensure they are well-equipped to handle their coding tasks efficiently and effectively.

SlickEdit - Pros and Cons
Advantages of SlickEdit
SlickEdit is a versatile and powerful code editor that offers several significant advantages for programmers:Cross-Platform Compatibility
SlickEdit is available on Windows, Linux, and macOS, making it a flexible choice for developers working across different operating systems.Multi-Language Support
It supports coding in over 70 languages, providing a broad range of options for developers working on various projects.Smart Editing Features
SlickEdit includes features like smart indenting, smart tab, and SmartPaste, which help in streamlining the coding process and improving code quality.Customization
The editor is highly customizable, allowing users to set up key bindings, macros, and other preferences through graphical dialog boxes, although it may require more manual setup compared to some other editors.Advanced Code Management
Features such as syntax highlighting, code completion, refactoring, and version control integration make it easier for developers to manage and maintain their codebase efficiently.Debugging and Testing
SlickEdit offers powerful debugging tools, including integrated builds, debuggers, and Java Live Errors, which help in identifying and fixing errors quickly.Productivity Enhancements
Tools like Context Tagging, Completion on Space, and code beautification help in saving time and increasing productivity by automating repetitive tasks and providing intelligent code suggestions.Disadvantages of SlickEdit
While SlickEdit is a powerful tool, there are some drawbacks to consider:Learning Curve
Although SlickEdit offers many graphical interfaces for customization, it still requires learning a new set of tools and interfaces, which can be time-consuming, especially for those accustomed to other editors like Emacs.Limited Pre-Configured Packages
Unlike some other editors, SlickEdit does not come with a large corpus of pre-configured packages or key bindings for specific tasks, requiring users to set these up manually.Cost
SlickEdit is a commercial product with a one-time purchase price, which can be a barrier for some users. The Standard Edition starts at $125, and the Pro Edition, which includes additional features like symbol analysis and debuggers, costs $299.No AI-Driven Coding Assistance
Unlike some modern coding tools, SlickEdit does not integrate AI-driven coding assistants for tasks such as auto-completing codes, offering intelligent code suggestions, or detecting errors based on historical data and best practices. In summary, SlickEdit is a powerful and feature-rich code editor that enhances productivity and coding efficiency but may require a learning curve and manual setup for some features, and it does not include AI-driven coding assistance.
SlickEdit - Comparison with Competitors
When Comparing SlickEdit to Other Coding Tools
When comparing SlickEdit to other coding tools, especially those with AI-driven features, it’s important to highlight both its unique aspects and how it stands against the competition.
Unique Features of SlickEdit
- Multi-Language Support: SlickEdit supports over 60 programming languages, making it a versatile tool for developers working on diverse projects.
- Macro Recording and Development: It offers macro recording in Slick-C, which is particularly useful for automating repetitive tasks. The Pro version has no limit on recorded macros.
- Large File Handling: SlickEdit can edit files up to 2 TB, which is a significant advantage for handling large codebases or data files.
- Debugging and Integration: The Pro version includes features like debuggers, integrated builds, and version control support, which are essential for comprehensive development workflows.
AI-Driven Coding Assistants
While SlickEdit is a powerful code editor, it lacks the AI-driven coding assistance that some newer tools offer.
GitHub Copilot
- AI-Powered Code Generation: GitHub Copilot provides advanced code autocompletion, context-aware suggestions, and automated code documentation generation. It also integrates well with popular IDEs like Visual Studio Code and JetBrains.
- Interactive Features: Copilot includes an interactive chat interface and built-in test case generation, which can significantly enhance developer productivity.
- Comparison: Unlike SlickEdit, GitHub Copilot relies heavily on AI to assist in coding tasks, making it a strong alternative for those looking for real-time coding assistance.
Codeium
- Autocomplete and Refactoring: Codeium offers unlimited single and multi-line code completions and a Refactor tool that can enhance code efficiency and clarity. It supports over 70 programming languages and integrates well with VSCode.
- Comparison: Codeium’s focus on AI-powered code completion and refactoring makes it a good choice for developers seeking to streamline their coding process, especially in complex scenarios where SlickEdit’s macro capabilities might not be enough.
Amazon CodeWhisperer
- Code Suggestions and Documentation: Amazon CodeWhisperer provides intelligent code suggestions, completes functions, and generates comprehensive documentation. It also includes security scanning features to identify potential vulnerabilities.
- Comparison: CodeWhisperer’s integration with popular IDEs and its ability to generate documentation and scan for security issues make it a strong competitor to SlickEdit, especially for developers who need AI-driven assistance in multiple aspects of their workflow.
Traditional Code Editors
For those who prefer traditional code editors without AI-driven features, there are other alternatives:
UltraEdit
- Versatility and Large File Handling: UltraEdit is known for its ability to handle large files and supports almost any syntax or source language. It offers features like column editing, remote file access, and data sorting, making it a powerful tool for text editing and programming.
- Comparison: UltraEdit and SlickEdit share many similarities in terms of feature sets, but UltraEdit is often referred to as the “Swiss Army knife” of text editors due to its wide range of functionalities.
CodeRunner
- Lightweight and Multi-Language Support: CodeRunner is a lightweight, multi-language text editor and IDE for macOS. It supports over 200 syntax modes and has advanced editing features like code completion and debugging tools.
- Comparison: CodeRunner is more lightweight and focused on macOS, making it a good alternative for developers who need a simple yet powerful editor without the extensive feature set of SlickEdit.
Conclusion
In summary, while SlickEdit is a powerful and feature-rich code editor, it may not offer the same level of AI-driven coding assistance as tools like GitHub Copilot, Codeium, or Amazon CodeWhisperer. For developers seeking AI-powered coding tools, these alternatives might be more suitable. However, for those who prefer a traditional code editor with extensive macro capabilities and large file handling, SlickEdit remains a strong choice.

SlickEdit - Frequently Asked Questions
Frequently Asked Questions about SlickEdit
What are the main differences between SlickEdit Standard and SlickEdit Pro?
SlickEdit offers two main editions: Standard and Pro. The Standard edition is priced at $125 and includes features such as syntax expansion and indenting, SmartPaste®, keystroke emulations, multiple cursors and selections, backup history, and macro recording in Slick-C. It also supports editing files up to 2 TB in size. The Pro edition, priced at $299, includes all the features of the Standard edition plus additional capabilities like symbol analysis and navigation, integrated debuggers, integrated builds, beautifiers, Diffzilla with editing and folder diff support, version control support with Shelving, Java Live Errors, and JUnit Integration. The Pro edition also has unlimited macro recording in Slick-C.Which programming languages does SlickEdit support?
SlickEdit supports over 76 programming languages and file types, including C, C , C#, Java, JavaScript, Objective-C, Google Go, HTML, PHP, XML, Windows batch files, AWK, Makefiles, and INI files. Some languages are supported with syntax highlighting only, while others have more comprehensive features like context tagging and debugging.What operating systems is SlickEdit compatible with?
SlickEdit is a cross-platform editor that runs on several operating systems, including Windows, macOS, Linux, AIX, HP-UX, and Solaris (both SPARC and x86). Additionally, the 32-bit Linux binary can run on a FreeBSD system configured for Linux binary compatibility, although this is not a supported configuration.What are some of the advanced features of SlickEdit?
SlickEdit includes several advanced features such as built-in “beautifiers” that enhance code as you type, code navigation, context tagging (Intelligent code completion), symbol references, third-party tool integration, and Diffzilla (a file comparison tool). It also supports large files up to 2 TB in size and includes features like SmartPaste®, multiple cursors and selections, and macro recording in Slick-C.How does SlickEdit handle large files?
SlickEdit is capable of editing files up to 2 TB in size, limited only by system resources. It can handle gigabyte files effortlessly, and its Diffzilla tool can compare gigabyte files faster than many other tools.What debugging capabilities does SlickEdit offer?
SlickEdit includes integrated debuggers for various languages and environments, such as GNU C/C , Java, WinDbg, Clang C/C LLDB, Groovy, Google Go, Python, Perl, Ruby, PHP, Xcode, and Android JVM/NDK. This allows for comprehensive debugging support across multiple programming languages and platforms.Can SlickEdit be used for different types of development?
Yes, SlickEdit is versatile and can be used for various types of development, including Web Development, iOS Development, Android software development, Desktop Development, and even Mainframe Development. It supports opening Visual Studio solutions and Xcode projects as workspaces, making it a flexible tool for different development needs.What is Slick-C and how is it used in SlickEdit?
Slick-C is a macro programming language used in SlickEdit. It allows users to create and customize macros to automate tasks and extend the functionality of the editor. Both the Standard and Pro editions support macro recording in Slick-C, but the Pro edition has no limit on recorded macros.How does SlickEdit support version control?
SlickEdit Pro includes version control support with features like Shelving, which allows users to temporarily set aside changes and work on other tasks. It also integrates with various version control systems, enhancing the development workflow.Are there any recent updates or new features in SlickEdit?
Yes, recent versions of SlickEdit, such as SlickEdit 2024, have introduced new features and enhancements. These include new language support (e.g., TOML), improved context tagging for Python 3.x, updated beautifiers, and enhanced spell checking for HTML and XML. These updates aim to improve the coding experience and support newer programming languages and technologies.
SlickEdit - Conclusion and Recommendation
Final Assessment of SlickEdit
SlickEdit is a highly versatile and feature-rich code editor that caters to a wide range of programming needs, making it an excellent choice in the coding tools category.Key Features
- Multi-Language Support: SlickEdit supports over 60 programming languages, making it a great tool for developers working on diverse projects.
- Efficient Coding: It includes features like syntax expansion, SmartPaste®, and code beautifiers to reduce keystrokes and improve coding efficiency. The editor also offers multiple cursors and selections, and macro recording in Slick-C.
- Project Management: SlickEdit allows users to manage their code using workspaces and projects, which helps in organizing files and quickly accessing them. The Pro version includes advanced project features such as symbol analysis, debuggers, and integrated builds.
- Navigation and Search: The editor provides powerful navigation tools, including context tagging, which enables quick jumps to symbol definitions and declarations. It also features advanced search capabilities and tools like DIFFzilla for comparing files and folders.
- Integration: SlickEdit integrates well with other development tools, including source control systems, compilers, debuggers, and profilers, making it a comprehensive solution for developers.
Who Would Benefit Most
- Professional Developers: The SlickEdit Pro version is particularly beneficial for professional developers due to its advanced features like symbol analysis, integrated builds, and version control support. These features make it ideal for managing large and complex projects.
- Multi-Language Developers: Developers who work with multiple programming languages will appreciate SlickEdit’s broad language support and the ability to switch between different coding environments seamlessly.
- Efficiency-Oriented Coders: Anyone looking to reduce their coding time and improve productivity will benefit from SlickEdit’s keystroke-saving features, such as completions, syntax expansion, and macros.