1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2025-10-09 04:26:57 +02:00
Commit Graph

9070 Commits

Author SHA1 Message Date
Xinhe Wang
7f107fcc21 Remove unused NerdTree ProjectViewListener from plugin configuration
The ProjectViewListener was already removed in 175bae51
2025-09-02 15:06:01 +01:00
Alex Plate
1c80863e12 Fix an issue that the application level service was called from the project level 2025-09-02 11:27:22 +03:00
Alex Plate
ec11c2ec70 Update status bar menu links with a sign that shows that this is an external link
Because of some encoding issues, I had to embed the string right in the code
2025-09-02 11:25:55 +03:00
Alex Plate
1e98fe2bed Add link to IdeaVim documentation in the status bar menu 2025-09-02 11:22:10 +03:00
Alex Plate
7558a9da39 Spellchecker is a separate plugin now and needs to be declared explicitly 2025-09-02 11:12:57 +03:00
Alex Plate
b47783090c Add new plugins for compatibility checks in TeamCity and plugin dependency validation. 2025-09-01 10:00:55 +03:00
IdeaVim Bot
b0361326b5 Add jetbrains-junie[bot] to contributors list 2025-08-30 09:01:45 +00:00
Alex Plate
1c6e9354fb Add instruction to examine commit content, not just messages
- Emphasize using git show to see full commit content
- Note that test files contain good examples for changelog
- Encourage looking at actual code changes for better understanding
- Help find specific command examples from tests
2025-08-30 11:57:20 +03:00
Alex Plate
2bc5daf2bf Add instruction to read PR comments for changelog guidance
- Emphasize reading PR comments from previous changelog updates
- Add gh command to view PR comments
- Note that review feedback may indicate what to avoid
- Help ensure special instructions from PR discussions are followed
2025-08-30 11:56:42 +03:00
Alex Plate
8e7beea33e Add note about reading only top portion of CHANGES.md
- Clarify that CHANGES.md is a large file
- Instruct to focus on [To Be Released] section and recent versions
- Avoid reading the entire file unnecessarily
2025-08-30 11:55:21 +03:00
Alex Plate
8b9e904623 Add dedicated section for updating changeNotes in build.gradle.kts
- Create separate section with detailed instructions for changeNotes
- Clarify that content should match CHANGES.md exactly (no summarizing)
- Provide HTML formatting guidelines and examples
- Emphasize not to create shorter or condensed versions
- Include example showing Markdown to HTML conversion
2025-08-30 11:19:59 +03:00
Alex Plate
ed14efc55c Add instruction to use PR titles as-is in changelog
- Specify that PR descriptions should be taken directly from PR titles
- Don't regenerate or rewrite PR descriptions
- Maintain author's original wording for PR entries
2025-08-30 11:11:40 +03:00
Alex Plate
deae5fea8e Add special rules for Merged PRs section in changelog
- Clarify that PRs have different inclusion criteria than Features/Fixes
- Note that internal changes and refactoring PRs should be included
- Emphasize acknowledging community contributions regardless of visibility
- Make clear that "user-visible only" rule doesn't apply to PRs section
2025-08-30 11:10:27 +03:00
Alex Plate
f5c5bd82ba Add another example of unclear changelog entry to avoid
- Add "Fixed inlay offset calculations" as bad example
- Show better alternative with specific user-visible case
- Reinforce that technical internal fixes should either have clear user impact or be omitted
2025-08-30 11:09:02 +03:00
Alex Plate
3b88a57478 Add guidance for clear, specific changelog entries
- Include bad example: "Fixed count validation in text objects" (too vague)
- Show better alternative: specific command that was fixed
- Emphasize: if unable to determine specific case, omit entry rather than be unclear
- Help ensure all changelog entries are meaningful to users
2025-08-30 11:07:13 +03:00
Alex Plate
00d08c3840 Add instructions to avoid duplication in changelog subsections
- Clarify that each change should appear in only ONE subsection
- Add note that features can also use YouTrack link format
- Emphasize no duplication between Features, Fixes, and other categories
- Update both Format Notes and Writing Style sections for clarity
2025-08-30 11:04:57 +03:00
Alex Plate
a5dd8cf8b1 Update PR title format for changelog updates
- Change PR title format to "Update changelog: <super short summary>"
- Add example showing how to summarize key changes in title
- Update both GitHub workflow and changelog instructions for consistency
2025-08-30 10:55:54 +03:00
Alex Plate
22b17e8cc5 Add instruction to include helpful documentation links in changelog
- Guide to search for and include official documentation links
- Add links to JetBrains features and Vim commands when relevant
- Include examples showing linked IntelliJ features (Next Edit Suggestion, multiple cursors)
- Help users find more information about mentioned features
2025-08-30 10:54:16 +03:00
Alex Plate
070b608687 Add guidance for including command examples in changelog
- Add instruction to include examples of commands/operations in changelog entries
- Update example entries to demonstrate including specific commands
- Show how to describe what now works for both fixes and features
- Help users understand how to use new features or what was fixed
2025-08-30 10:51:34 +03:00
Alex Plate
a72db2b5af Add user-focus emphasis to changelog instructions
- Clarify that internal code changes should not be logged
- Emphasize that changelog is for users, not developers
- Strengthen user-focused writing style guidelines
- Exclude refactoring, code cleanup, and internal architecture changes
2025-08-30 10:49:20 +03:00
Alex Plate
9f58c73d92 Refactor documentation structure and extract changelog instructions
- Simplified CLAUDE.md to avoid redundancy with other docs
- Created .claude/changelog-instructions.md with detailed changelog maintenance guide
- Updated GitHub Action to reference the new changelog instructions doc
- Added instructions for updating changeNotes in build.gradle.kts
- Added notes about excluding API module changes (experimental status)
- Added step to check previous changelog PRs for special instructions
2025-08-30 10:42:01 +03:00
Alex Plate
0b919b18b7 [API] Fix handling of empty strings in list option functions
The append, prepend, and remove functions now correctly handle empty
option values. When an option is empty (""), we use an empty list
instead of splitting the empty string which would result in [""].

This fixes test failures in OptionScopeTest for operations on empty options.
2025-08-29 19:00:37 +03:00
Alex Plate
9aff700a58 Add GitHub Action for automated changelog maintenance using Claude
This workflow runs daily at 5 AM UTC (or manually) and uses Claude to:
- Review commits and update CHANGES.md with meaningful changes
- Maintain the exact format used before the changelog gap
- Include YouTrack links for fixes (format: [VIM-XXXX](url))
- Reference merged PRs (excluding dependabot and Claude PRs)
- Handle the historical gap between versions 2.9.0 and 2.28.0
- Create PRs only when there are actual changes to document

Claude has access to git, GitHub CLI, and can fetch from YouTrack,
GitHub, and JetBrains plugin pages to gather accurate information.
2025-08-29 18:32:17 +03:00
Alex Plate
12fe8671d3 Add GitHub Action to automatically update IntelliJ version configurations
This workflow runs three times a year (August 15, April 30, December 1)
and uses Claude to check if new IntelliJ versions need to be added to
TeamCity test configurations. Claude will automatically create a PR if
a new version is needed.

The workflow can also be triggered manually for testing.
2025-08-29 18:11:27 +03:00
Alex Plate
fc2cea471b Add TeamCity configuration for IntelliJ 2025.2
Added test configuration for IntelliJ 2025.2 to run alongside 2025.1.
This ensures compatibility testing with the upcoming IDE version.
2025-08-29 18:11:27 +03:00
Alex Plate
9499716b18 [API] Simplify list option handling in OptionScope 2025-08-29 18:11:27 +03:00
Alex Plate
c66a212781 [API] Add experimental API warning to all plugin documentation
Added prominent warning notice to all Plugin API documentation files:
- Plugin-API-reference.md
- Plugin-API-introduction.md
- Plugin-API-quick-start-guide.md
- Plugin-API-tutorial-replace-with-register.md

The warning clearly states that the API is experimental and not
recommended for production use, with potential breaking changes.
2025-08-29 18:11:26 +03:00
Alex Plate
0099ea9073 [API] Update Plugin API Reference documentation for OptionScope
- Document that option() function now returns a value
- Add comprehensive documentation for list option methods (append, prepend, remove)
- Add utility methods documentation (toggle, split)
- Include practical usage examples and common use cases
- Update method signatures to reflect non-nullable returns
- Add Vim command equivalents for better understanding
2025-08-29 18:11:26 +03:00
Alex Plate
de809b528b [API] Turn OptionScopeImpl into an object 2025-08-29 18:11:26 +03:00
Alex Plate
c6adc48e81 [API] Make option() function return a value
This allows users to easily retrieve values from option scope:
val x = option { get<Int>("history") }

- Changed option() signature from Unit to generic T return type
- Updated VimApiImpl implementation to return the lambda result
- Added test demonstrating the new return value capability
2025-08-29 18:11:26 +03:00
Alex Plate
955ccc8151 [API] Make getOptionValue return type non-nullable
The implementation always returns a value or throws an exception,
so the return type should be non-nullable to reflect this behavior.
Updated extension functions to remove unnecessary null checks.
2025-08-29 18:11:26 +03:00
Alex Plate
907495df4d [API] Refactor OptionScope from abstract class to interface
- Convert OptionScope from abstract class to interface
- Extract inline functions with reified types as extension functions
- Make getOptionValue() and setOption() public interface methods
- Remove internal modifier layer functions
- Update OptionScopeImpl to implement new interface
- Add documentation recommending extension function usage
- Update test imports to use new extension functions
2025-08-29 18:11:25 +03:00
Alex Plate
2b276d316f [API] Add append(), prepend(), and remove() extension functions for list options
- append(): adds values to end of comma-separated list (like Vim's +=)
- prepend(): adds values to beginning of list (like Vim's ^=)
- remove(): removes values from list (like Vim's -=)
- All functions prevent duplicate values from being added
- Comprehensive test coverage for all scenarios
2025-08-29 18:11:25 +03:00
Alex Plate
4f1982d6bd [API] Add toggle() function to OptionScope for boolean options
Adds a simple toggle() function that flips boolean option values.
Works with both full option names and abbreviations.

Example usage:
  toggle("ignorecase")  // true → false, false → true
  toggle("ic")          // works with abbreviations
2025-08-29 18:11:25 +03:00
Alex Plate
a235648672 [API] Add split() extension function to OptionScope for comma-separated values
Adds a concise String.split() extension function within OptionScope that splits
comma-separated option values into lists. This simplifies working with list-type
options like 'virtualedit', 'whichwrap', etc.

Example usage:
  val values = get<String>("virtualedit")?.split() ?: emptyList()
  // "block,all" → ["block", "all"]
2025-08-29 18:11:25 +03:00
Alex Plate
85d5da4ab6 [API] Add comprehensive tests for OptionScope API
Added extensive test coverage for the OptionScope API including:
- String list options with various formats (single, multiple, empty values)
- Error handling for invalid values, empty names, and type mismatches
- Boundary conditions for integer options
- Boolean/integer type conversions
- Global vs local option scoping
- Option abbreviations
- Edge cases like trailing/leading commas and very long strings
2025-08-29 18:11:24 +03:00
Xinhe Wang
511da14b83 Support disabling extended NERDTree without restarting 2025-08-29 17:53:46 +03:00
Xinhe Wang
636fe0a76f Make extended NERDTree a separate VimExtension 2025-08-29 17:53:46 +03:00
Xinhe Wang
2b5342a935 Add support for ActivateNode in NERDTree Everywhere 2025-08-29 17:53:46 +03:00
Xinhe Wang
758aaf276a Extend NERDTree support to Tree components other than Project 2025-08-29 17:53:46 +03:00
jetbrains-junie[bot]
022dc9698b feat(junie): added .devcontainer.json 2025-08-29 16:53:20 +03:00
jetbrains-junie[bot]
6c3a9f214b feat(junie): added .junie workflow 2025-08-29 16:52:06 +03:00
Alex Plate
df82794f4f Fixed a missing | 2025-08-29 14:31:44 +03:00
Alex Plate
2d378327e7 Fix tests after bringing back the old ReplaceWithRegister 2025-08-29 14:00:24 +03:00
Alex Plate
0e37295988 Ignore some test for neovim 2025-08-29 13:55:27 +03:00
Alex Plate
0d342ea6c3 Disable the new ReplaceWithRegister test as it's flaky 2025-08-29 13:45:06 +03:00
Alex Plate
e343da03a1 Bring back the old implementation of the replace with register
The new implementation is now named ReplaceWithRegisterNew
2025-08-29 13:44:26 +03:00
Alex Plãte
a009766a1a "Claude Code Review workflow" 2025-08-29 12:05:24 +03:00
Alex Plãte
d40061f9a4 "Claude PR Assistant workflow" 2025-08-29 12:05:24 +03:00
Alex Plate
476389b9c3 Bring back actualText to keep the compatibility with an external plugin 2025-08-29 11:48:26 +03:00