Latest News
OrchidE 2024.1.0
OrchidE 2024.1.0 brings language injection support for the Ansible shell module, editor functions for arguments of Ansible test functions, and an aliasing function for variables to associate the variable with a role argument spec definition.
Language injection for shell module
For script code in the Ansible shell module, it is now possible to edit the code in OrchidE with the corresponding plugin.
The plugins for Shell, PowerShell, and Python are currently supported.
OrchidE can recognize the language by means of an annotation, the keyword executable or a shebang line.
If there is more than one entry, the entry with the highest priority is used:
- 1) Annotation
- 2) Keyword executable
- 3) Shebang
Support for test arguments
Code completion, syntax highlighting, and quick documentation are now available for Ansible test plugin arguments.
Alias for inventory variables
With the alias annotation of OrchidE you get Quick Documentation, Code Completion and Navigation for Argument-spec variables that are used indirectly.
If you want to install a role on a node several times, you can do this in the playbook, for example:
- name: Sample Aliases roles: - role: service-instance vars: install_folder: "" - role: service-instance vars: install_folder: ""
However, auxiliary variables must now be used to maintain the install_folder variable in the inventory. To continue using editor functions such as quick documentation, navigation and code completion for variables from the argument-spec definition, the alias annotation of OrchidE is used.
With the alias annotation, the auxiliary variables can be mapped to the argument spec definition:
#@alias::install_folder alias_sample_instance_1: /opt/service_1
Deprecation
Support for IntelliJ platform 2023.1 is deprecated and will end with the launch of the EAP for IntelliJ version 2025.1.
OrchidE 2023.1.7
OrchidE 2023.1.7 brings some improvements for the configuration of OrchidE and syntax highlighting for Ansible test plugins.
Global setting for code completion of collections
The code completion mode for collections can now be set for all collections at once.
Individual changes can be made subsequently set certain collections differently.
Global pattern for playbook file names
File names or file name patterns can now also be used to recognize playbooks. These patterns are used to search the entire IntelliJ project for files that match the pattern.
The exact file name can be specified, or alternatively, a pattern with wildcards can be used.
Syntax highlighting for Ansible test arguments
Quick Documentation for Ansible Test Plugins
For Ansible test plugins ‘Quick Documentation’ is now supported in the editor with shortcut or mouse-over.
Changes
- Change: Support for inserting closing quotes similar to other IntelliJ editors with some Ansible yaml specific extensions.
- Change: Improved support of Ansible test plugins for the ‘Undefined Variable’ inspection.
- Change: Some more defaults in ‘Ansible Folder Mapping’ (docker-compose, gitlab, files/*)
- Change: Some minor changes for IntelliJ EAP version 2024.3
Deprecation
Support for IntelliJ platform 2023.1 is deprecated and will end with the launch of the EAP for IntelliJ version 2025.1.
OrchidE 2023.1.6
OrchidE 2023.1.6 brings support for Ansible test plugins and can display warnings from the Ansible Lint plugin in the OrchidE editor.
Ansible Test Plugin Support
OrchidE supports code completion and quick documentation for test conditions in the form of “is <condition>”
Configuration
Code completion for Ansible test plugins uses the settings of the collection to decide whether FQCN or short names should be suggested.
Deviating from this, you can specify in the editor settings of OrchidE whether the FQCN or the short name should also always be displayed. For Jinja builtin (Python Jinja2 Library) tests, there is no FQCN.
Display of Ansible Lint warnings in the OrchidE Editor
OrchidE can now display warnings from the Ansible Lint plugin in OrchidE editors.
Changes
- Bugfix: Undefined Variable inspection doesn’t recognize variables defined by the vars keyword in playbooks.
- Bugfix: Undefined Variable inspection doesn’t recognize loop variables when using keyword loop_control.
- Bugfix: NullPointerException when referencing variables in the argument_spec file under certain conditions.
- Bugfix: Exception in Ansible Structure view when using dot files or file name with only one char.
Deprecation
Support for IntelliJ platform 2022.3 is deprecated and will end with the launch of the EAP for IntelliJ version 2024.3.
OrchidE 2023.1.5.1
OrchidE 2023.1.5.1 brings a few bugfixes.
Changes
- Bugfix: Broken tree view in OrchidE ‘Collections’ setting.
- Bugfix: Inspection ‘Undefined Variable’ doesn’t support loop_control: loop_var definition.
- Bugfix: Inspection ‘Wrong Value Type’ throws NotImplementedError.
- Bugfix: Documentation parameters such as single ‘\n’ not shown in quick documentation.
Deprecation
Support for IntelliJ platform 2022.3 is deprecated and will end with the launch of the EAP for IntelliJ version 2024.3.
OrchidE 2023.1.5
OrchidE 2023.1.5 supports the Ansible configuration to decrypt Ansible vaults and includes fixes for IntelliJ EAP version 2024.2.
Decrypting Ansible vaults using the Ansible configuration vault_password_file
To decrypt Ansible vaults, an Ansible configuration file ‘ansible.cfg’ can be specified. OrchidE will use the settings entry ‘vault_password_file’, to read the password and decrypt Ansible vaults.
OrchidE supports the reading of plain text password files. Executable files are not supported.
When environment variables are used in the ‘ansible.cfg’, a simple variable substitution is performed, advanced shell variable processing is not supported. To be able to use environment variables, they must be known to the IntelliJ platform process.
The Ansible configuration file setting can be found in Settings Languages & Frameworks OrchidE.
Deprecation
Support for IntelliJ platform 2022.3 is deprecated and will end with the launch of the EAP for IntelliJ version 2024.3.
OrchidE 2023.1.4.1
OrchidE 2023.1.4 brings a few bugfixes and support for IntelliJ platform EAP version 2024.2.
Changes
- Bugfix: Various fixes for Ansible structure view.
- Bugfix: Code completion and intention ‘Undefined Variables’ don’t honor order of pre_tasks/tasks/post_tasks/handler keywords in playbooks when searching for variables defined by set_fact or register.
Deprecation
Support for IntelliJ platform 2022.2 has ended with the launch of the EAP for IntelliJ version 2024.2.
OrchidE 2023.1.4
OrchidE 2023.1.4 brings new code assistant features for Ansible plugin filters. The code assistant supports code completion and quick documentation for all filters.
The support is available for all Ansible collections with filters (requires an updated OrchidE builder package).
Adjustments for Ansible conditions
The conditions for the keywords “when”, “changed_when”, “failed_when” and “until” are now identical to Jinja templates to better support code assistant.
A new addition is the check for Undefined Variable, which is now also available for conditions.
Currently, there is still the restriction that nested variables from set_fact and register are not supported.
Changes
- Change: Support for Ansible version 2.9 has been removed.
- Bugfix: It is not possible to load OrchidE Builder definition files from folder paths with spaces.
- Bugfix: Improved handling of multi-line values.
- Bugfix: Quoted Keys at the beginning of a line lead to a parser error.
- Bugfix: OrchidE also searches folders outside the IntelliJ project when searching for Ansible folders. Now only project directories are searched.
Deprecation
Support for IntelliJ platform 2022.2 is deprecated and will end with the launch of the EAP for IntelliJ version 2024.2.
OrchidE 2023.1.3
OrchidE 2023.1.3 brings minor improvements to the Quick Documentation of Ansible modules. It also includes updates for EAP version 2024.1.
The Quick Documentation supports the new formatting and option links of the Ansible 9 documentation. And sample code in the documentation is now displayed with syntax highlighting.
Changes
- Change: Compatibility updates for IntelliJ platform version EAP 2024.1.
- Change: Support for inventory host variables in subfolders.
Deprecation
Support for IntelliJ platform 2022.2 is deprecated and will end with the launch of the EAP for IntelliJ version 2024.2.
OrchidE 2023.1.2
OrchidE 2023.1.2 brings code completion and quick documentation for module parameters with additional sub-parameters.
Code completion for sub-parameters of module arguments
For module arguments with further sub-parameters as a list of dictionaries, there is now code completion. In addition, selection lists are supported if the sub-parameter only allows values from a selection list.
Quick documentation for sub-parameters of module arguments
Short description of proposals in the code completion selection
A description snippet is now displayed with the code completion of modules and module arguments.
Changes
- Change: Compatibility updates for IntelliJ platform version EAP 2024.1.
- Change: A quick documentation_ is now also displayed for variables defined in argument specification files if the definition has no description tag, but other metadata such as type, required tag, …)
- Bugfix: Parsing error in Jinja2 templates if the first value is a function and the arguments of the function are numbers (e.g. range(1,5)).
- Bugfix: In Jinja2 templates for properties files, selected text is deleted when the property key is selected and then curly brackets are entered instead of adding the brackets around the selection.
DeprecationSupport for IntelliJ platform 2022.2 is deprecated and will end with the launch of the EAP for IntelliJ version 2024.2.
OrchidE 2023.1.1
OrchidE 2023.1.1 improves the use of variables from the argument-spec definition of a role and automatically recognizes standard folders for roles, playbooks and inventories.
Improved support for argument spec variables
In inventory variable files (group_vars/host_vars) there is now extensive support for code completion, quick documentation, type checks, and navigation:
- Code completion for substructures and choices
- Navigation to declaration of keys
- Quick documentation for all keys in the editor and during code completion
- Type check for scalar types (characters, booleans, numbers, selection lists)
To use the code assistant features for argument-spec variables, the variable must have an OrchidE role annotation and playbooks with inventory entries must exist (i.e., in playbooks hosts: <name> and in the inventory a corresponding <name> entry).
Automatic detection of typical Ansible folders
OrchidE now recognizes standard Ansible folders and offers to apply the configuration automatically.
If there is no configuration yet, OrchidE scans the IntelliJ project and offers to take over all folders found. For most projects, no further configuration of the Ansible Folder Mappings is necessary.
Found Ansible folders are now displayed in the Ansible Folder Mapping configuration and can be easily added.
Extension of the action “Go to related item”
The action “Go to related item” now also offers entries from the inventory if these are super- or subgroups of the inventory entry.
Example:
[ansible:children] ansible-dev ansible-prod [ansible-dev] localhost
If the “ansible-dev” group is referenced in the playbook, the action can now also be used to navigate directly to variable files in the “ansible” group.
Changes
- Change: The folder names in the configuration Ansible Folder Mapping are now displayed relative to the project directory for better clarity.
- Bugfix: Ansible project view does not show top-level entries from YAML inventory files.
- Bugfix: ‘SlowOperation not allowed in EDT’ error in Intention “Create File”.
Deprecation
Support for IntelliJ platform 2022.1 is deprecated and will end with the launch of the EAP for IntelliJ version 2024.1.
OrchidE 2023.1.0.1
Changes
- Bugfix: Copy & paste does not work for plain text/Python files (indentation based on spaces).
Deprecation
Support for IntelliJ platform 2022.1 is deprecated and will end with the launch of the EAP for IntelliJ version 2024.1.
OrchidE 2023.1.0
OrchidE 2023.1.0 brings copy & paste support for Ansible code snippets, can set new passwords for Ansible Vault files and supports encryption and decryption of Ansible variables.
Copy & Paste with indentation
When pasting text, OrchidE now indents the copied text.
OrchidE currently supports indentation on insertion for Ansible
- tasks,
- modules,
- module arguments
- and variables.
If the copied text is to be pasted unchanged, Paste as Plain Text can be used.
Other text will be indented as it was copied from the original.
When text is selected and copied in column mode, the indentation is not adjusted. The copied text is pasted unchanged.
Encrypt Ansible variables
OrchidE can now encrypt and decrypt variable values in Ansible files.
Change password for Ansible Vault files
The password for Ansible Vault files can now be easily changed in the editor. It does not matter whether the Vault file is shown encrypted or unencrypted in the editor.
Deprecation
Support for IntelliJ platform 2022.1 is deprecated and will end with the launch of the EAP for IntelliJ version 2024.1.
OrchidE 2022.1.7.3
Hotfix for OrchidE version 2022.1.7.2 for Windows.
This fixes a bug that prevents the path for the OrchidE-Builder extension from being interpreted on Windows.
OrchidE 2022.1.7.2
OrchidE comes with improved compatibility for IntelliJ EAP version 2023.3 and some small bug fixes.
Changes
- Bugfix: SlowOperations error when opening Ansible vault file (OrchideUtilFile.getJavaNormalizedPath(OrchideUtilFile.kt:557)).
- Bugfix: Wrong name displayed for editor tab name for playbook files when using OrchidE’s tab name feature.
Deprecation
The facet configuration is deprecated and will be removed with one of the next releases (-> moved to Ansible Folder Mapping).
Support for IntelliJ platform 2022.1 is deprecated and will end with the launch of the EAP for IntelliJ version 2024.1.
OrchidE 2022.1.7.1
OrchidE comes with improved compatibility for IntelliJ EAP version 2023.3 and some small bug fixes.
Changes
- Change: Various changes to improve compatibility with IntelliJ EAP version 2023.3.
- Bugfix: SlowOperations error with guessProjectForFile(ProjectLocatorImpl.java:45), OrchideVaultFileDocumentSynchronizationVetoer.maySaveDocument(OrchideVaultFileDocumentSynchronizationVetoer.kt:54).
- Bugfix: Error when checking whether a Yaml file is an Ansible Vault file (UnsupportedOperationException).
- Bugfix: Can’t save vault file when switching between different operating systems (Windows vs. Unix-like OS) or when working with VCS crlf conversion.
Deprecation
The facet configuration is deprecated and will be removed with one of the next releases (-> moved to Ansible Folder Mapping).
Support for IntelliJ platform 2022.1 is deprecated and will end with the launch of the EAP for IntelliJ version 2024.1.
OrchidE 2022.1.7.0
In OrchidE 2022.1.7.0, the inventory folders group_vars and host_vars are now also recognized if they are located in the IntelliJ project root folder. A configuration in the Ansible Folder Mapping settings is not necessary for this.
Note: If the folders are located in an inventory folder within the project, the inventory folder must still be added in the settings.
This version of OrchidE supports IntelliJ EAP 2023.3 with limitations.
The next version of the IntelliJ platform 2023.3 (currently in the EAP program) comes with a new threading model (parallel processing of IDE functions) and further performance optimization checks for IDE and plugin developers.
This can lead to “informative error message” in the IDE which are displayed once per IDE start. Apart from the display of the error message these error messages have no functional limitation to the consequence.
(Apart from the distraction of the error message, of course.)
The error messages/stacktraces always start with one of these lines:
java.lang.Throwable: Slow operations are prohibited on EDT. See SlowOperations.assertSlowOperationsAreAllowed javadoc
, orjava.lang.Throwable: Non-cancelable slow operations are prohibited inside read action. See SlowOperations.assertNonCancelableSlowOperationsAreAllowed javadoc
.
Please send a copy of the error to if such an error occurs. This helps us to adapt OrchidE to the next IntelliJ version.
Changes
- Change: Performance improvement for the Ansible Project View.
- Bugfix: Error when opening *.j2 files while opening a project (cannot distinguish StubFileElementTypes. This might worsen the performance…).
- Bugfix: Error in some cases when completing code with the ‘vars’ keyword (NullPointerException in OrchideReferenceProviderDefaultVariable).
- Bugfix: Error when opening a project when restoring the workspace (NullPointerException in OrchideReferenceProviderDefaultVariable).
- Bugfix: Roles are not recognised if a role consists only of a tasks file and the file extension yml is used.
Deprecation
The facet configuration is deprecated and will be removed with one of the next releases (-> moved to Ansible Folder Mapping).
Support for IntelliJ Platform 2022.1 is deprecated and will end with the launch of the EAP for IntelliJ version 2024.1.
OrchidE 2022.1.6.0
In OrchidE 2022.1.6.0 the playbook keyword hosts now has code completion support and supports the action “Go to Declaration”. Code completion and navigation use the definition from the inventory. Inventory files in INI and Yaml format are supported.
Code completion
and navigation
Support for playbooks in sub folders
OrchidE now shows the related path / namespace of playbooks in the Search Everywhere dialog and in the Go to related Symbol dialog.
SearchEverywhere dialog with display of context for roles and playbooks.
Instead of the IntelliJ module, the context of role and playbook entries is now displayed in the Search Everywhere dialog. The determination of the context is based on the configuration in Settings ➞ Languages & Frameworks ➞ OrchidE ➞ Ansible Folder Mapping.
Changes
- Change: Improved naming for editor tabs.
- Bugfix: Code completion doesn’t work for roles with whitespaces.
- Bugfix: Code completion and navigation do not work when role names are in quotes.
- Bugfix: Inventory groups showing wrong icon in Ansible structure view (for yaml inventory files).
- Bugfix: When using the intention ‘Create Variable’ in tasks files from sub folders, missing vars/default files are created in the wrong folder.
- Bugfix: Inlay hint for a Jinja reference is not displayed if the referenced variable has no value or is an empty string.
- Bugfix: meta/main.yml is not shown in Ansible structure view.
- Bugfix: Folder chooser dialog in settings Ansible Folder Mapping doesn’t show project folder.
Deprecation
The facet configuration is deprecated and will be removed with one of the next releases (-> moved to Ansible Folder Mapping).
Support for IntelliJ Platform 2021.3 is deprecated and will end with the launch of the EAP for IntelliJ version 2023.3.
OrchidE 2022.1.5.1
This version mainly brings bug fixes when using the new configuration “Ansible Folder Mapping”.
This version of OrchidE is verified against IntelliJ platform version EAP 232.6484.1 from May 23, 2023.
Changes
- Bugfix: Inventory files are not detected if the IntelliJ project folder is configured as playbook folder in Ansible folder mapping.
- Bugfix: Ansible Structure View shows .idea folder when IntelliJ project folder is used as root directory
- Bugfix: Fix unnecessary creation of .idea/orchide.xml on non-Ansible projects
- Bugfix: Error (NullPointerException) when displaying *.j2 files that exist only temporarily (e.g. VCS diff window).
- Bugfix: Error (NullPointerException) in various situations when detecting role name
- Bugfix: Error / high CPU load when starting the search with the ‘.’ character in Search Everywhere dialog.
Deprecation
The facet configuration is deprecated and will be removed with one of the next releases (-> moved to Ansible Folder Mapping).
Support for IntelliJ Platform 2021.3 is deprecated and will end with the launch of the EAP for IntelliJ version 2023.3.
OrchidE 2022.1.5.0
OrchidE 2022.1.5.0 now supports roles in subdirectories (with namespace) and brings a new configuration for Ansible file detection.
Roles within subfolders
OrchidE now supports roles that are inside the roles folder in subdirectories:
- name: Sample playbook snippet roles: - role: mycompanyroles/setup
Configuration of Ansible Folders
Under Settings ➞ Languages & Frameworks ➞ OrchidE ➞ Ansible Folder Mapping the complete configuration for Ansible playbooks, roles and inventories detection and exceptions is now done.
Thereby the base folders for playbooks, roles and inventories have to be defined, so that OrchidE can load the correct parser for all IDE features.
Within the playbooks and roles configuration you additionally define what is a variable file or playbook/role file. E.g. playbook folders can contain task files that are included by playbooks or roles can contain playbooks in the molecule/tests folder.
This version of OrchidE is verified against IntelliJ platform version EAP 232.6095.10 from May 18, 2023.
Changes
- Change: Performance improvements for code completion and navigation lookup for role imports/includes in playbooks.
- Bugfix: Quick documentation is not inserted correctly in inventory variable files if the description in the ‘argument_spec’ file is multiline.
Deprecation
The facet configuration is deprecated and will be removed with one of the next releases (-> moved to Ansible Folder Mapping).
Support for IntelliJ platform 2021.3 is deprecated and will end with the release of IntelliJ platform 2023.3.
OrchidE 2022.1.4.0
OrchidE 2022.1.4.0 brings simplified configuration for projects that contain only one Ansible role.
If an IntelliJ project has only one Ansible role and its folders (tasks, handlers, …) are located directly in the main folder of the project OrchidE now offers a switch to use a custom configuration for this setup.
This configuration can be set in Settings ➞ Languages & Frameworks ➞ OrchidE ➞ Ansible Folder Mapping.
The molecule folder is not yet supported in the simplified configuration. If necessary, a rule for playbooks should be created in the settings for the File Type Patterns.
Files with tasks can be marked as task files via the IntelliJ action ‘Override file type’ or via an entry in the File Type Patterns.
Configuration of Ansible Folders
The configuration for the base folders of playbooks, roles and inventories has been moved from the facet configuration to the project configuration. The new configuration will also be used as a basis for a future simplified configuration of the File Type Patterns.
The facet configuration is deprecated and will be removed with one of the next releases.
Improved support for import_tasks/include_tasks
The modules import_tasks/include_tasks now support files relative to the playbook during navigation and code completion.
If the modules are used in roles, OrchidE automatically finds the matching playbook and its path. Optionally, the set folders from the playbook folder settings can also be used. The option can be enabled/disabled in the Settings ➞ Editor ➞ Orchid : Code Completion section:
Changes
- Change: OrchidE now displays a warning if the file extension YAML is associated with the IntelliJ function “Python Template Language”. This feature overwrites the OrchidE mapping to the OrchidE parser. Thus, OrchidE cannot be used together with this function. The restriction applies if the files are in the same IntelliJ module. In separate IntelliJ modules, the Python template language function can be used together with OrchidE.
- Change: The src argument of the template module now also supports folders/paths during code completion.
- Bugfix: Quick documentation is not displayed for the import_tasks / include_tasks modules.
Deprecation
Support for IntelliJ platform 2021.2 is deprecated and will end with the release of IntelliJ platform 2023.2.
OrchidE 2022.1.3.0
OrchidE 2022.1.3.0 supports the latest IntelliJ platform EAP version 2023.1 and brings some bug fixes.
This version of OrchidE is verified against IntelliJ platform version EAP 231.6471.13 from February 3, 2023.
Changes
- Bugfix: Roles Variable files in subfolders are not used in Code Completion and Inspections.
- Bugfix: When resolving included files with the keyword vars_files, an endless recursion occurs if Jinja variables are used for the file name (StackOverflowException).
- Bugfix: When resolving Jinja variables with circular dependencies, an overflow occurs during resolution (StackOverflowException).
- Bugfix: The intention “Add extra variable” is executed already when selecting the entry and not when confirming the entry.
- Bugfix: Editor tabs show the wrong status for mark modified (*) after saving an Ansible Vault file.
- Changes: Internal API updates.
Deprecation
Support for IntelliJ platform 2021.1 is deprecated and will end with the release of IntelliJ platform 2023.1.
OrchidE 2022.1.2.0
OrchidE 2022.1.2.0 comes with more inspections and improvements for imported playbooks.
A new inspection checks if a used Ansible task without namespace leads to an ambiguity. The listed namespaces in the collections keyword are taken into account.
Import playbook
In playbooks imported from other playbooks (via import_playbook) the keywords ‘vars’ and ‘vars_files’ are now also supported. This means that variables defined with vars/vars_files are used for navigation, code completion and for the inspection ‘Undefined Variables’.
The feature also supports cascaded imports from playbooks.
Private role vars
For navigation, code completion and the inspection “Undefined Variables”, “private role vars” are now also taken into account in Jinja2 templates.
Jinja2 templates
In Jinja2 templates there is now a status bar that displays a breadcrumb of Jinja expressions.
Inventory
To have improved support for navigation, quick documentation, code completion and inspections in inventory variable files there is the OrchidE Role Annotation.
A new intention and inspection support to add the annotation afterwards.
If the warning for the missing annotation is not desired, it can be configured or disabled in the settings (Settings ➞ Editor ➞ Inspections ➞ Ansible: ‘Missing role annotation’).
Changes
- Bugfix: Quick fix ‘Create group/host variable’ shows too many possibilities. (Also unsupported meta/argument spec files are shown).
- Bugfix: Error when a Vault file is opened in the IntelliJ editor and decrypted outside of IntelliJ.
- Bugfix: Variable values / resolved references of Jinja2 templates are not displayed as inlay in IntelliJ 2022.3.</li>
Deprecation
Support for IntelliJ platform 2021.1 is deprecated and will end with the release of IntelliJ platform 2023.1.
OrchidE 2022.1.1.0
OrchidE 2022.1.1.0 brings many small improvements and fixes.
For Ansible Vault files the Vault id can now be set afterwards.
File references in tasks
Code assistant functions for the modules include_tasks, import_tasks and template have been improved and extended:
- File references to Jinja templates now support folders in file path.
- Navigation to a referenced file is now a single file path (instead of folders + file) entry.
- Support code completion for sub dictionaries within Jinja templates.
- Inspection missing file now shows the original file reference string with Jinja templates.
- New configuration flag to filter code completion suggestions by file extension
*.j2
for template task. (Settings ➞ Editor ➞ OrchidE : code completion section). - Performance improvements.
Changes
- Change: Inspection undefined variable now finds variables defined with task’s vars keyword.
- Bugfix: Inlays show wrong values if variable names have the same prefix.
- Bugfix: Block keyword not detected when followed by a comment.
- Bugfix: Parser does not recognize the keyword block if it is immediately followed by a comment.
- Bugfix: Inspection wrong keyword displays an error of an valid name if the name matches a module name.
- Bugfix: Parser shows an error if a dictionary/list is used in a Jinja function in Jinja templates (e.g.
{{ combine(var1, { 'key': value|string + x['abc'] } ) }}.
- Bugfix: Code completion does not display variables defined with the keyword vars.
- Bugfix: Inspection wrong module argument type brings an error if referenced values contain a ‘
\
’ character.
Deprecation
Support for IntelliJ platform 2021.1 is deprecated and will end with the release of IntelliJ platform 2023.1.
OrchidE 2022.1.0.0
OrchidE 2022.1.0.0 comes with code assistant for Ansible group and host variables in inventories.
- Code completion of variables based on the argument-spec definition and the defaults file in roles.
- Optionally, the description is additionally inserted above the variable (code completion with Enter key).
- Navigation to the declaration of variables in the argument-spec file
- Quick documentation of the description and meta attributes of a variable (based on argument spec)
- Type check of variable values based on the definition in the argument-spec file
- OrchidE own annotation for improved user experience
Code Completion
(with Role annotation only the matching suggestions are displayed)
Navigation
(a role annotation must be present for navigation to work)
Quick Documentation
OrchidE supports the HTML shortcuts (e.g. I(italic) for italic) from the Ansible documentation and renders the HTML text correctly when shortcuts are used in the argument spec description.
Type-Check of Values
Folding
Changes
- Change: Binary content in Ansible vault files are detected and no longer displayed in the editor.
- Bugfix: Error in find usages with unresolved references (IllegalStateException: element.node must not be null).
Deprecation
Support for IntelliJ platform 2020.3 is deprecated and will end with the release of IntelliJ platform 2022.3.
OrchidE 2021.1.8.1
OrchidE 2021.1.8.1 contains some bugfixes and support for IntelliJ platform version EAP 2022.3.
Changes
- Bugfix: Parser error for Jinja2 expression if using an empty dictionary
('{}')
. - Bugfix: Parser error for Jinja2 expression if using embedded Jinja2 expression
like{{ lookup('file', '{{ item }}') }}
- Bugfix: Code completion for Jinja2 braces not working in variable and task files.
- Bugfix: IDE Error (NPE) during indexing Ansible files within inventory folder.
Deprecation
Support for IntelliJ platform 2020.3 is deprecated and will end with the release of IntelliJ platform 2022.3.
OrchidE 2021.1.8.0
OrchidE 2021.1.8.0 now supports code completion and navigation go to declaration for template files.
- Code completion for the src argument of the template module.
- Navigation to the template file for the module template (without Jinja support)
For code completion, the default search path is limited to the search path <Ansible search paths>/templates/*.
In the configuration Editor | OrchidE the behavior can be changed to get all files suggested that Ansible supports.
For variables of type ‘list’ from the argument_spec file, OrchidE now supports code completion for the choices of the list.
Changes
- Bugfix: IntelliJ error when a Jinja2 template is selected in the VCS Diff window.
- Bugfix: Parser error when using concatenated strings in Jinja2 templates, e.g. {{ groups[ prefix.host + “Server”] }}.
Deprecation
Support for IntelliJ platform 2020.3 is deprecated and will end with the release of IntelliJ platform 2022.3.
OrchidE 2021.1.7.0
OrchidE 2021.1.7.0 improves the support for variables set with the set_fact module or the keyword register:
- Code completion for Jinja2 variables now also suggests set_fact/register variables when included via import/include_tasks
- Navigation to variables set with set_fact/register now also supports variables set in import/include_tasks.
- The ‘Undefined Variables’ inspection now also supports set_fact/register variables set in imported/included files.
The resolution of the imported files takes place hierarchically, thus also (sequence) dependencies of the imported files are recognized.
The improvements are also available in Jinja2 template files.
Deprecation
Support for IntelliJ platform 2020.2 is deprecated and will end with the release of IntelliJ platform 2022.2.
Support for Ansible versions 2.9 and 2.8 is deprecated.
OrchidE 2021.1.6.0
OrchidE 2021.1.6.0 now supports code completion for argument spec variables when used in playbooks and in Jinja2 templates (
{{ }}
) in roles.Changes
- Change: File type patterns for playbooks have been updated to better distinguish between playbooks and variable files.
Deprecation
Support for IntelliJ platform 2020.2 is deprecated and will end with the release of IntelliJ platform 2022.2
Support for Ansible versions 2.9 and 2.8 is deprecated.
OrchidE 2021.1.5.0
In OrchidE 2021.1.5.0, the Inspection Undefined Variables detects variables set by the Jinja2
set
statement.And for the Jinja2 template structures if, for, macro, filter, call there is a check if a corresponding end statement (endif, endfor, …) exists.
Changes
- Change: Improved error messages for parser errors.
- Bugfix: Code completion of module argument doesn’t show arguments with version label.
- Bugfix: Parser error for expression ‘{%-‘ in Jinja2 templates in Ansible multi-line statements.
- Bugfix: Error when adding an empty value within the file type pattern dialog.
- Bugfix: Jinja2 JSON template shows error if Jinja2 template is a placeholder for boolean and number.
Deprecation
Support for IntelliJ platform 2020.2 is deprecated and will end with the release of IntelliJ platform 2022.2
Support for Ansible versions 2.9 and 2.8 is deprecated.
OrchidE 2021.1.4.0
OrchidE 2021.1.4.0 now supports navigation to associated files for Ansible files.
For example, from a role, it is possible to directly navigate
- to playbooks, which contain the role,
- to group/host variables,
- to inventory entries,
- and to all files within the role.
The function is available via the IntelliJ action Navigate -> Related Symbol. (Ctrl + Alt + Home, Ctrl + ⌥+ Up)
Navigation is supported:
from playbooks
- to vars files
- to roles (-> tasks/main.yml)
- to group/host variables
- to inventory entries
from roles (tasks, vars, defaults)- to all files of the role
- to playbooks, including this role
- to group/host variables (via included role in playbook)
- to inventory entries (via included role in playbook)
from inventory entries (cursor must be on entry)- to playbooks
- to group/host variables
from group/host variables- to playbooks
- to roles (via playbook)
- to inventory entries
Deprecation
Support for IntelliJ platform 2020.1 is deprecated and will end with the release of IntelliJ platform 2022.1
Support for Ansible versions 2.9 and 2.8 is deprecated.
OrchidE 2021.1.3.0
OrchidE 2021.1.3.0 now supports inventory files in YAML format for the Project View -> Ansible Structure.
And for inventory group and host entries there is a navigation to playbooks using these groups/hosts and to the corresponding variables.
The navigation takes place via Navigate -> Related Symbol (Ctrl + Alt + Home, Ctrl + ⌥+ Up)
Changes
- Change: The project view ‘Ansible Structure’ now shows the file status in color if the file is under version control.
Deprecation
Support for IntelliJ platform 2020.1 is deprecated and will end with the release of IntelliJ platform 2022.1
Support for Ansible versions 2.9 and 2.8 is deprecated.
OrchidE 2021.1.2.0
OrchidE 2021.1.2.0 now assists in creating new Ansible files.
The creation is context-independent, i.e. roles are always created in the configured role folder. The New file action uses the facet configuration (facet ‘OrchidE Ansible’) to find the appropriate folder.
The following types can be created:
- Roles: creates a folder for the role and depending on the selection an initial file tasks/main.<ext> or meta/main.<ext>.
- Playbooks: creates a playbook file or folder with a file main.<ext>.
- Group var: creates an inventory group var file in <inventory>/group_vars folder. Optionally as a folder with default filename.
- Host var: creates an inventory host var file in <inventory>/host_vars folder.
If no folder is specified for the type in the facet configuration, the currently selected path from the Project-View is taken as the basis.
If multiple folders are specified for the type in the facet configuration, the matching path will be searched based on the current path in the Project-View. If the current path is not part of a configured Inventory, Playbook or Role base directory, the current path will be used.The default file name for folder-based group var files and the preferred YAML file extension can be configured in the settings (File | Settings | Editor | OrchidE).
Changes
- Change: Inlay hints can now display recursively resolved values for variables if the reference is unique
- Change: Inlay hints for Jinja variables now supports set_fact variables.
- Change: Inlay hints in tooltips now include the path to the file of the reference.
- Change: Inlay hints can now be displayed as a “tooltip icon”. The complete information is then in the tooltip.
- Change: Jinja2 templates feature (.j2) now includes support for base template language of YAML files (.yml.j2, *.yaml.j2). (supports combined usage with other yaml based plugins like JetBrains’ Kubernetes plugin)
- Change: Jinja2 templates feature now adds closing brace for Jinja2 variables template “
{{ }}
”. - Change: The setting for the Ansible version has been replaced by the entry <collections> for version 2.10 and higher. The version is defined by the installed OrchidE builder definition package.
- Change: The inspections “Deleted Module” has been removed for Ansible version >=2.10. The inspection “Unknown Ansible play, task and block keyword” can be used instead.
- Bugfix: Inlay hints setting ‘hide default values’ is not working for defaults variables files in roles.
- Bugfix: Setting file type pattern ‘Task’ was not properly recognized.
- Bugfix: Introduce Variable refactoring doesn’t work with multi line strings.
- Bugfix: ‘Comment with Line Comment’ moves cursor one line down in generic Jinja2 template (plain text).
Deprecation
Support for IntelliJ platform 2020.1 is deprecated and will end with the release of IntelliJ platform 2022.1
Support for Ansible versions 2.9 and 2.8 is deprecated.
Support for Ansible version 2.7 has been removed.OrchidE 2021.1.1.0
OrchidE 2021.1.1.0 can now display the values of Jinja variables as inlay hints.
Inlay hints for Jinja variables
These inlay hints can be configured in the preferences (File | Settings | Editor | Inlay Hints).
Changes
- Bugfix: Selected editor tab with playbook won’t be selected in Ansible structure tree.
- Bugfix: Refreshing of Ansible structure view rebuilds tree several times after deleting a file.
- Bugfix: Resolving of Jinja variables shows wrong entries when name matches part of variable name.
Deprecation
Support for IntelliJ platform 2020.1 is deprecated and will end with the release of IntelliJ platform 2022.1
OrchidE 2021.1.0.0
OrchidE 2021.1.0.0 comes with a project view for Ansible and a search for inventory entries.
Project view for Ansible
The project view shows inventory entries and variable files, playbooks and roles and hides the rest of the structure.
Further details can be found in the documentation.
Support for searching inventory hosts and groups via search dialog
In the SearchEverywhere dialog it is now possible to search for inventory group and host names and to navigate to the associated declaration or to the associated variable definition. (Shortcut Ctrl+Shift+O, then I, ⌘+Shift+O, then I)
Search for and navigation to host and group names is currently available for inventory files in INI format. Also, the INI plugin (ini4idea) from JetBrains must be installed. (YAML for inventory files is not supported).
For this function, the facet “OrchidE Ansible” must be assigned to a module and configured.
Changes
- Minor bug fixes.
Deprecation
Support for IntelliJ platform 2019.3 is deprecated and will end with the release of IntelliJ platform 2021.3.
OrchidE 2020.1.9.0: Bugfixes and support for newest IntelliJ EAP version
OrchidE 2020.1.9.0 now supports IntelliJ platform version 2021.3 EAP 2.
Changes
- Bugfix: Inspection “Duplicate Keywords” shows wrong error on role keyword in playbooks.
Deprecation
Support for IntelliJ platform 2019.3 is deprecated and will end with the release of IntelliJ platform 2021.3.
OrchidE 2020.1.8.0: New Features
OrchidE 2020.1.8.0 allows quick navigation between tasks (via IntelliJ action Next/Previous Method) and easy movement of tasks (via IntelliJ action Move Statement Up/Down).
Navigation and movement of taskHighlighting of Jinja2 statements in multi-line text
Structure View window
The Structure View can now display tasks and includes in playbooks and tasks files.
Änderungen
- Change: Improved deprecated detection of non-FQCN module with same name in different collections.
- Change: Support jinja2 templates in key names for variables in module set_fact.
Deprecation
Support for IntelliJ platform 2019.3 is deprecated and will end with the release of IntelliJ platform 2021.3.
OrchidE 2020.1.7.0: New Features
OrchidE 2020.1.7.0 brings a new inspection to check the type of keyword or module argument. Code completion for keywords and module arguments now also offer known values for even faster editing.
Type Checks
OrchidE can now check the types
- boolean,
- integer and
- selection list
for keywords and module arguments and warn when type is wrong.
The use of Jinja variables with simple references is also supported.
Type definitions are used from collection and keyword documentation. Custom definitions from argument_specs are currently not supported.
Code Completion with values
Boolean and selection lists are now included as additional code completion suggestion at keywords and module arguments.
Which combination of boolean (true/false, yes/no, on/off) is suggested can be set in the editor settings.
Changes
- Change: Support code completion for variables for
debug: -> var:
. - Change: Various improvements and fixes for
include_tasks
in code completion and navigation “go to declaration”. - Bugfix: Inspection undefined variables does not consider loop variable in Jinja templates from host/group variables.
- Bugfix: Error displaying “no valid file” for arguments with name “file”.
Deprecation
Support for IntelliJ platform 2019.2 is deprecated and will end with the release of IntelliJ platform 2021.2.
OrchidE 2020.1.6.0: New Features
OrchidE 2020.1.6.0 comes with improvements for Ansible include-modules (
import_tasks
,include_tasks
,import_playbook
undvars_files
).OrchidE now additionally supports
- code completion for files to include
- navigation support for full path
- inspection for missing files
- the creation of missing files
- the creation of additional files when Ansible Facts variables are used
At least IntelliJ Platform 2019.3 is required to create new files (for Ansible fact based insertion).
Supported Ansible facts are
- ansible_distribution
- ansible_os_family
- ansible_system
- ansible_distribution_major_version
More facts available via email or via GitHub issue/pull request for the definition file.
Changes
- Change: inspection undefined variables now also recognizes variables in loops with
with_dict
. - Change: new inspection to detect duplicate YAML keys.
- Bugfix: error when setting a variables file to plain text.
- Bugfix: parser error in string concatenation in Jinja2 templates.
- Bugfix: missing html entity decoding in documentation of return values.
Deprecation
Support for IntelliJ platform 2019.2 is deprecated and will end with the release of IntelliJ platform 2021.2.
OrchidE 2020.1.5.0: New Features
Orchid 2020.1.5.0 now has code completion and navigation support for the Ansible keywords.
when
,failed_when
,changed_when
anduntil
.For variables defined by the keyword
register
, code completion, navigation and quick documentation are now supported. These functions are supported for variables defined within the same file.- Code completion support for Ansible variables in conditions
- Go to declaration for Ansible variables used in conditions
- Code completion support for register variables, including code completion of return-values.
- Go to declaration of register variables.
- When using register variables, the documentation of return values will be shown in the quick documentation.
Jinja2 Templates
The inspection undefined variables now detects loop variables in Jinja2 templates.
Collections
Support for Ansible 2.11 and improved setting dialog for configuring collections.
- Configuration of collections via keyboard.
- Reloading the collection configuration after applying the changes without restarting.
Module set_fact
Code completion and go to declaration support for variables set by module set_fact (within the same file).
Changes
- Change: Stability improvements when working with multiple projects.
- Change: Note on recommended configuration setting for OrchidE extension and use of Ansible 3.3.
- Change: Removed support for Ansible 2.6 and 2.5.
- Bugfix: Fixed missing arguments, removed wrong arguments from command modules (shell, command, script, …) (Ansible 2.8, 2.9).</li>
Deprecation
Support for IntelliJ platform 2019.2 is deprecated and will end with the release of IntelliJ platform 2021.2.
OrchidE 2020.1.4.0: Support for Ansible vault files
OrchidE 2020.1.4.0 can now decrypt and encrypt Ansible vault files.
Important
(Update Apr. 16, 2021)
This version is now available on the Marketplace.
This version is currently not available via the JetBrains Marketplace.Please download the version from the website and install the plugin via the plugin settings ( –> “Install Plugin from disk “)OrchidE 2020.1.4.0 für IntelliJ Version >= 2019.3.1OrchidE 2020.1.4.0 für IntelliJ Version 2019.2OrchidE 2020.1.4.0 für IntelliJ Version 2019.1
The usual download from the Marketplace will be delivered as soon as possible.- Decrypt Vault files with and without Vault id.
- Decrypted files can be used like normal files with variables - supports navigation, code completion, inspection
- Optional persistent storage of the password in the IntelliJ password safe for each Vault id. Alternatively, the password is only kept in memory.
- Encrypt new files with/without Vault id.
- Support for IntelliJ’s “Auto-Save” feature - OrchidE encrypts Vault files when IntelliJ saves them.
Passwords (within Ansible files) are never stored in plain text - even if they are visible in the editor.
Explicit encryption is not necessary. - Supports comparison of Vault files with VCS.
More details about decrypting/encrypting can be found in the documentation.
Changes
- Change: Further performance improvement for the inspection “Undefined Variables”.
- Change: Inspection “Undefined Variables” now also supports variables defined in include-/import_role
- import_role: name: test_role vars: testkey: "hello"
Restrictions for IntelliJ platform 2019.1 and 2019.2
If there is more than one open project with IntelliJ platform versions 2019.1 and 2019.2, the “Close Project” button must be pressed twice, if there are unsaved vault files.
Deprecation
Support for IntelliJ platform 2019.2 is deprecated and will end with the release of IntelliJ platform 2021.2.
OrchidE version 2020.1.4.0 is the last version supporting IntelliJ platform 2019.1.
Announcement: Delay in the publication of OrchidE releases
Due to a re-organization for the development of OrchidE, unfortunately no releases can be published at the moment.
We are working to complete the re-organization as soon as possible and release new releases.
OrchidE 2020.1.3.0: Performance improvements and new features
Performance
OrchidE 2020.1.3.0 includes performance improvements for navigation and Inspection Undefined Variables.
Code completionCode completion is now available for Ansible module arguments that expect a value from a choice.
Code completion, navigation und inspection “undefined variables”Code completion, goto declaration and a validation by inspection “undefined variables” are now available for further variable definitions:
- for variables defined in playbooks with the keyword vars are now fully supported in role tasks.
- for variables defined in playbooks -> roles: -> vars: are now fully supported in role tasks.
Changes- Changes: added documentation for Ansible keywords (requires OrchidE-Builder update -> (Settings | Languages & Frameworks | Orchide | Extension)
- Bugfix: Fix IllegalStateException if code completion for Ansible is set to version 2.9 or lower.
Deprecation
Support for IntelliJ platform 2019.1 is deprecated and will end with the release of IntelliJ platform 2021.1.
OrchidE 2020.1.2.0: Configuration Options for Code Completion of Collections
In version 2020.1.2.0 you can configure code completion for collections. You can choose between
- use only the full qualified collection name (FQCN)
- use only the short name (module name)
- use the short name based on the keyword collections. If collection is not listed, the FQCN and short name will be displayed
- always show FQCN and short name
Navigation
For the module include_tasks file names with Jinja2 templates are now supported.
This function requires the OrchidE-Builder extension (File | Settings | Languages & Frameworks | OrchidE | Extension) and is only supported for a selection of variables.
Missing variables can be requested via email or GitHub Issues.
More details can be found in the documentation
Configuration
The assignment of the file extension for YAML is no longer mandatory for OrchidE. OrchidE can now also YAML files recognize if the extensions *.yml, *.yaml are assigned to the YAML plugin.
This allows the parallel use of OrchidE with other YAML-based plugins and improves the detection of ansible files after IntelliJ updates.
Deprecation
Support for the IntelliJ platform 2019.1 is deprecated and ends with the release of the IntelliJ platform 2021.1.
IntelliJ IDEA EAP 2020.3 support
OrchidE now supports IntelliJ IDEA EAP 2020.3.
OrchidE needs the YAML Plugin or a manual assignment of the file extension to recognize the YAML files
At the time of release of new EAP versions it may happen that there is no YAML plugin in the JetBrains plugin repository. A current snapshot build for manual installation is usually available in the Snapshot Repository.
Alternatively you can set the assignment of the file extension in the settings (File | Settings | Editor | File Types).
OrchidE 2020.1.1.0: Quick Documentation Support for Ansible Modules
In version 2020.1.1.0 OrchidE supports the display of the documentation for Ansible modules.
The IntelliJ Quick Documentation Popup and Tool Window now displays documentation on ansible modules and arguments.
OrchidE shows the description of modules and their arguments. Included is the description, the requirements and notes, the documentation on arguments, return values and examples.
The documentation is not part of the plugin and must be installed after the installation/update of the OrchidE plugin.
To install the documentation, open the dialog File | Settings | Languages & Frameworks | OrchidE | Extension, set the download directory and download the OrchidE Definition Archive. After that a restart of IntelliJ is necessary.
Changes
- Bugfix: Fixed the parser error when using “/” in calculations within Jinja2 templates.
OrchidE 2020.1.0.0: Support for Ansible Galaxy Collections
In version 2020.1.0.0 Ansible Collections are now supported and it is possible to navigate to target files for import/include modules.
Ansible Collection support
OrchidE now supports modules of the most common Ansible Galaxy Collections - in FQCN and short notation. The support includes parsing of Ansible files and the code completion for modules for Ansible version 2.10.
OrchidE can be extended with additional Ansible Collections to add missing or updated collections. For this purpose there is a CLI tool on GitHub to create updated definitions.
Navigation support for import*/include* tasks
For the modules (and arguments)
- import_playbook
- import_tasks
- include_tasks
- include_tasks: -> file:
- import_role: -> name:
- include_role: -> name:
- include_vars: -> file:
- vars_files:
the navigation “Go to Declaration” (Ctrl + B/Command + B) is now supported. Supported are file/path names relative to the current file.
New inspections
New Inspections check the validity of keywords and module arguments:
- Inspection “Unknown Ansible play, task and block keyword”
- Inspection “Unknown Ansible role keyword”
- Inspection “Unknown module argument”
(Supported for Ansible versions 2.8 - 2.10)
Open issues
When using modules in short form there are restrictions if two or more collections use the same name (e.g. user)
In this case, all module arguments are always offered by code completion. Also, the inspection “Unknown module argument” checks for all arguments of all possible modules.
The Inspection “Removed Modules” is not yet adapted to version 2.10 of the Ansible project.
Changes
- Bugfix: Fixed wrong highlighting for non-playbook/tasks files.
OrchidE 2019.1.12.0: Fixes in the parser
Changes
- Change: Improved block support.
- Change: Parser improvements for YAML flow sequences.
- Change: Updates for support of IntelliJ platform 2020.2.
- Bugfix: Support “,” after last element in flow sequence.
OrchidE 2019.1.11.0: Fixes in the parser
Changes
- Change: Improvements of the parser when interpreting plain scalar texts.
- Bugfix: Fixed parser error when using text in quotation marks within Jinja2 templates.
- Bugfix: Support for role names with special characters for the command Go to Declaration.
- Bugfix: Incorrect recognition of TODOs in role and variables files.
OrchidE 2019.1.10.0: Supports the creation of Ansible variables based on Jinja2 templates
In version 2019.1.10.0, you can create Ansible variables for roles and host/group vars directly from Jinja2 template code.
With the intentions “Create vars variable” and “Create defaults variable” it is possible to create Ansible variables directly from Jinja2 template code (
{{ my_variable }}
)With the intention “Create host/group var variable” a variable can be created for each Ansible Reference in an existing host/group var based on a Jinja2 template code.
To use Ansible command line variables (parameter –extra-vars) in OrchidE, such variables can be created in OrchidE. These variables will taken into account durtaing code completion and the inspection “Undefined Variable”.
These variables are stored in the IntelliJ .idea project directory (orchide-extravars.xml) and can checked-in to version control system.
With the Quick Fix action for the inspection “Undefined Variable” new variables can easily be added to the list.
Other changes
- Bugfix: Fix error on enter in empty file
- Bugfix: Fix parser error in multi line strings when using multi line quote strings
- Bugfix: Fix several parser errors in jinja strings
- Bugfix: Fix error when using a module name string as jinja reference
- Bugfix: Fix quick fix error in plain text jinja templates
OrchidE 2019.1.9.0: Changes, bug fixes and support for custom directory layout for Ansible files
In version 2019.1.9.0, pattern matching can now be configured to detect Ansible playbooks, roles and variables. This means that any folder structure can now be used with OrchidE and roles and playbooks can be created in any parent folder.
Folding now supports more elements - playbooks, keywords, tasks, modules, module arguments, blocks, multi-line text, lists and dictionaries are now supported.
To fully expand and collapse all elements, you must activate the folding in the settings. (File | Settings | Editor | OrchidE | Section Folding)
The default setting still only considers tasks and top-level variables.
Other changes
- Change: when inserting modules with “free_from” argument via code completion, no line break is inserted anymore (shell, command, import_tasks, …)
- Change: support tag
!unsafe
for raw strings - Change: improvements and fixes for indent on enter feature
- Bugfix: fixes various parser errors for Ansible filter
OrchidE 2019.1.8.0: Changes, bug fixes and support for IntelliJ EAP 2020
Version 2019.1.8.0 now indents the cursor automatically and supports the EAP program 2020.1.
Enter now automatically indents based on typical usage in Ansible Playbooks and Roles. For the keywords - block, rescue, always, tasks, pre_tasks, post_tasks and handlers - the hyphen for the typically following tasks are added.
To unindent a line, the “Smart Key” setting Unindent on Backspace is supported. Note: In OrchidE there is no distinction between the two indent options of IntelliJ.
Furthermore, the indentation can be undone by pressing the “Enter” key if the current line is a blank line. This functionality is deactivated by default and must be activated via Settings -> Editor -> OrchidE.
It is now possible to use encrypted values for variables in playbooks, roles and vars files (YAML tag !vault)
Other changes
- Change: variable name can now begin with “_” or numbers
- Change: (internal) plugin metadata changed to organization id
- Change: improvement of the parser for multi line text.
- Bugfix: fixes the parser error when a comma comes after a jinja variable.
- Bugfix: fixes the parser error when using lists below roles:.
- Bugfix: fixes code-completion in the handler: section in playbooks.
OrchidE 2019.1.7.0: minor changes and bug fixes
Version 2019.1.7.0 of OrchidE now ignores Ansible vault files and supports the keyword vars in tasks.
- Change: support keyword vars within tasks. Variables defined by vars keyword are used by code completion, inspection undefined variables and navigation go to declaration. Fixes also the navigation bug of playbook keyword vars.
- Change: support detection of Ansible vault files. OrchidE no longer parses and inspect Ansible vault files. Ansible vault files will now be opened as plain text.
- Change: support latest JetBrains Floating License Server API.
- Bugfix: fix wrong deprecated warning when switching from configured Ansible 2.9 to an older version.
- Bugfix: fix inspection deleted modules showing wrong result when switching from configured Ansible 2.9 to an older version.
- Bugfix: parser trim support for yaml multi line text (
|-
,>-
). - Bugfix: NPE com.taff.plugin.orchide.codeinsight.OrchideUtilKt.getType.
- Bugfix: fix TypeCastException when triggering code completion within empty blocks.
OrchidE 2019.1.6.0: IntelliJ platform 2019.3 support
Version 2019.1.6 of OrchidE now supports IntelliJ platform 2019.3.
Playbooks now supporting the keyword
vars:
for code completion and the inspection “Undefined Variables”.- Bugfix: missing keywords “become_exe” and “throttle” of Ansible 2.9 added.
- Bugfix: fix commenter exception “Access is allowed from event dispatch thread only.”
OrchidE 2019.1.5.0: Ansible 2.9 Support
Version 2019.1.5 of OrchidE now supports Ansible version 2.9.
A new inspection “Removed Modules” now helps migrating to a new Ansible version. Starting with Ansible Version 2.9 removed modules are still accepted by the parser, but can be declared as a warning or error via the inspection “Removed Modules” and can be reviewed in the inspection results.
- Change: the inspection for detecting Deprecated Modules now shows the names of the module and possibly existing replacement modules.
- Bugfix: Jinja2 Whitespace Control - Jinja2 templates will now be
correctly parsed when using Jinja2 Whitespace Control expressions
{{-
,-}}
. - Deprecated: support for Ansible Version 2.5 syntax highlighting and code completion is deprecated.
OrchidE 2019.1.4.0: minor changes and bug fixes
Version 2019.1.4.0 of OrchidE now also allows “yaml” as file extension and brings some bugfixes.
- Change: it is now also possible to use the file extension yaml for Ansible files.
- Bugfix: when extracting selected text into a Jinja variable, too much text was cut if the cursor was at the end of the line.
- Bugfix: fixed the StringIndexOutOfBoundsException in the Jinja2 template parser.
- Bugfix: for Jinja variables the refactoring menu is now hidden (“Extract Variable/Constant”).
- Bugfix: fixed performance problem when opening the context menu in the editor and the refactor menu.
- Bugfix: fixed detection of group/host variable files with standard directory layout.
OrchidE 2019.1.3.0 brings Jinja2 template support
Jinja2 templates
OrchidE now supports Jinja2 templates.
OrchidE supports Jinja2 templates for
- XML (“.xml.j2”)
- JSON (“.json.j2”)
- Properties (“.properties.j2”)
Files. Other file extensions are interpreted as plain text. To use the Jinja2 template support, the file extension “.j2” must be appended.
In Jinja2 expressions (
{{ }}
/ Ansible variables and filters) and simple statements ({% % %}
) are supported. Also all IntelliJ functions are supported as for Ansible playbooks and roles (Goto functions, search, highlighting, code completion).Inspection undefined variables with improved loop support
The inspection undefined variables can now check dictionaries in loop variables.
Changes
- The goto function (for Goto Ansible variables - Navigate | Symbol, Ctrl + Alt + Shift + N, Cmd + Alt + O) now searches inside
all roles of the project.
So far, the search has been limited to host and group variables and other variables depending on the active editor.
Bugfixes
- OrchidE now also recognizes YAML files as Ansible variables file which are stored directly in the folder group_vars.
- The goto function (Navigate | Class, Ctrl + N, Cmd + O) now finds role files in role folders with the pattern “roles[^/]*”.
So far, the pattern has been “roles\/”.
OrchidE 2019.1.2.0 released
OrchidE now supports the IntelliJ platform version 2019.2. Shortly after JetBrains has released its latest version, you can already use OrchidE with it.
Changes
- Code Completion for Jinja variables now also shows snippets of values.
- Code Completion for Jinja variables now also works with incomplete Jinja templates and subsequent parser errors.
Bugfixes
- Comments directly after a multi-line string are now correctly displayed as comments.
- Keywords that were only added with an Ansible Version 2.5 - 2.8 are now correctly compared with the set version and are is correctly hidden and shown during code completion.
- The goto function (Navigate | Class, Ctrl + N, Cmd + O) now also finds playbook files without explicit subfolders.
- Code Completion for block keywords now also works for always and rescue.
The latest version of OrchidE now supports more IntelliJ products and syntax highlighting and code completion for Ansible version 2.8.
- OrchidE now supports code completion and syntax highlighting for the latest Ansible version 2.8.
- OrchidE can now be used with more JetBrains products, it’s now compatible with
- DataGrip
- GoLand
- PyCharm
- PhpStorm
- RubyMine
- WebStorm
to use OrchidE, at least version 2019.1.1 of the respective JetBrains product is required