-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: 🐛 most known issues #102
base: master
Are you sure you want to change the base?
Conversation
- support double-width characters - remove the `\uE000` characters added by JediTerm - JetBrains/jediterm@5a05fe1#diff-0065f89b4f46c30f15e7ca66d3626b43b41f8c30c9d064743304fe8304186a06R1036-R1039 - anthraxx#46 - support paths with spaces when the path is enclosed in double quotes - the file name or folder name should not start with a space or end with a space - anthraxx#29 - file name can contain any characters except `\/:*?"<>|` and whitespace - support row:col format that can contain variable whitespace characters
- files outside the project or directories within the project should use the `OpenUrlHyperlinkInfo` , otherwise use the `createMultipleFilesHyperlinkInfo` - anthraxx#49 - resolve paths containing `.` and `..` as actual paths
- support folder paths ending with separator
- `src\api\service.ts(29,50)`
… and uses `File.exists` to determine if it is valid
- for `findBestMatchingFiles`
- absolute path or path with line/col - `assertPathDetection` support matching multiple expected values - anthraxx#50
- so that other plugins can serve as fallbacks to handle the rest of the scenes, rather than overriding the expected result - fix the url contains parentheses, e.g. https://en.wikipedia.org/wiki/Parenthesis_(disambiguation)
- anthraxx#1 - support the file surrounded by `[]`
- same as idea's built-in GotoLineNumberDialog - https://github.com/JetBrains/intellij-community/blob/212.5080/platform/platform-impl/src/com/intellij/ide/util/GotoLineNumberDialog.java#L53-L55 - anthraxx#90
- separate methodName and fileName in java stackTrace - https://github.com/JetBrains/intellij-community/blob/212.5080/java/execution/openapi/src/com/intellij/execution/filters/ExceptionFilter.java - https://github.com/JetBrains/intellij-community/blob/212.5080/plugins/kotlin/jvm/src/org/jetbrains/kotlin/idea/filters/KotlinExceptionFilter.kt
- Separate PersistentStateComponent and Configurable because they are different. A new instance of Configurable will be created each time when the Settings Dialog is opening. - anthraxx#60 - anthraxx#94
- fix a situation: click `Invalidate and Restart` in Rider, open a terminal before the indices are updated, the project files is not cached at this time
…ns` tool window - support manually reload file cache - show logs in `Event Log`
- show notification only once when debug mode is not enabled
…highlighted - paths containing only `[./\]` are ignored by default
- relative path
- compatible with leading slash added by `slashify` - optional `authority component` in URI can be empty `//` - extract `FileUtils.isWindowsAbsolutePath`
- `BasePlatformTestCase.setUp` - testTypeScriptCompiler
- `resolveSymlink` and `VfsUtil.findFile` are slow and may cause the UI to freeze if there are many files - when a hyperlink is clicked, it immediately responds to configuration changes without having to re-create the hyperlink - rename `createMultipleFilesHyperlinkInfo` to `buildMultipleFilesHyperlinkInfo`
- no longer need to restart IDE frequently during development - to enable JRebel for a project, we need to add the rebel.xml configuration file to it, which is automatically generated by `JRebel Gradle plugin` - the real classes target directory is [main-instrumented] - enabled only for the `Run Plugin` task - https://plugins.jetbrains.com/plugin/4441-jrebel-and-xrebel
@anthraxx Please take a look, thank you |
Installation
Build from SourceNote Gradle should run with Java 11.
|
The captured input associated with a group is always the subsequence that the group most recently matched. If a group is evaluated a second time because of quantification then its previously-captured value, if any, will be retained if the second evaluation fails. Matching the string `"aba"` against the expression `(a(b)?)+`, for example, leaves group two set to `"b"`. All captured input is discarded at the beginning of each match.
Hi @anyesu thank you very much for the merge request, I have high interest in reviewing everything and getting it integrated, this is much appreciated. The changeset is very huge, so this will take some time to review appropriately before considering the merge. One early feedback I can already give is that I very much want to avoid wrapper or binary jars in the source tree as this makes it none obvious if there is anything malicious hidden, I expect that developers need to be able to set up basic gradle environment themselves. Please remove the gradle directory with the jars as well as the gradlew wrapper. Thank you. |
This reverts commit b5c255d
@anthraxx Thank you for your reply. I use Gradle wrapper for the following reasons:
There are real security risks in doing this, I agree with you. So I have removed the Gradle wrapper related files and only keep the Run Configuration which is helpful for running in the IntelliJ IDEA .
At the beginning, I also wanted to fix it with as little code changes as possible, but as more and more problems were fixed, the amount of code changes inevitably became huge. In order to facilitate development, I also made some adjustments to the code style and test cases. These changes make the overall code look a bit messy, and I'm sorry about that. |
What's the status of this? From description, I see it could resolve issues that I encountered (no links in lines formatted like this: |
@anyesu maybe I can help you publishing it, either:
but your issue tracking is closed |
Thanks but no thanks @tribbloid.
|
Initially I just wanted to fix this Chinese character problem ( #46 ) , but because I rewrote the regular expression, I fixed the following problems by the way.
🐛 Bug Fixes
🏁 Fix fully qualified class names on Windows. (d5d6497)
🍎 Reset
srcRoots
when the indices are updated. (8a43f00)In macOS, when opening the Gradle project for the first time, the initial value of
srcRoots
is empty.🐛 Fix double-width characters (such as Chinese character) in Terminal. (7d6c28f)
remove the
\uE000
characters added by JediTerm.🐛 Recognize external files with absolute path. (43f8567)
🐛 Fix the absolute path recognized by
getResultItemsFile
will be overwritten bygetResultItemsUrl
. (7d6c28f)🐛 The drive
[a-zA-Z]:[\\/]+
should not be truncated when matching file name. (08f2ad6 , adfe19f , e2f4abc)🐛 Fix wrong cursor col position. (4e0d1f6)
Do same as intellij-community's built-in GotoLineNumberDialog .
🐛 Fix when changing the size of Terminal on Windows, the input may contain the
\0
. (075568a)🐛 The
scheme
forURL
is required. (69404d3)~~~~
should not be recognized as aURL
.For Unix absolute paths , the
detectPaths
should be used instead ofdetectURLs
.🐛 The
URL
should not contain quotes. (d1c0cea)fatal: unable to access 'https://github.com/anthraxx/intellij-awesome-console.git/': schannel: failed to receive handshake, SSL/TLS connection failed
🐛 Other issues have been fixed.
✨ Features
💥 Adjust the order of
AwesomeLinkFilterProvider
to be first. (ec19221)So that other filters can serve as fallbacks to handle the rest of the scenes, rather than overriding the expected result.
🐛 Fix the URL contains parentheses:
⚡ Flush file cache when VFS changes. (9aa1971 , 8a43f00)
How do I get notified when VFS changes?
⚡ Allow Filter to run in dumb mode (when indices are in background update). (644bbad)
The Filter can take effect immediately when the project is opened without waiting for the index to be updated.
DumbAware
Reload file cache when exit dumb mode (indices are updated). (3829c7d)
⚡ Optimize hyperlink logic. (43f8567 , 605791a , 98019d8 , 2840b9c)
Open all files and internal folders in the IDE.
Open files that match the index by file name in the IDE.
Resolve absolute paths starting with a slash into relative paths based on the project root as a fallback.
Open external folders in explorer.
Open URL in browser.
Files or folders that do not exist or cannot be matched to the index will not be highlighted.
closes
⚡ The file name or folder name should:
Can contain any characters except
\/:*?"<>|
and whitespace. (7d6c28f)Support files without extensions and files starting with a dot (
.gitignore
)Not start with a space or end with a space. (7d6c28f)
Not start with drive
[a-zA-Z]:
. (adfe19f)Not end with a dot, except
.
and..
. (cb4ba8b , 42022b8)Exclude ASCII control characters. (e6b945b)
⚡ Support paths with spaces when the path is enclosed in double quotes. (7d6c28f)
✨ Support
row:col
format that can contain variable whitespace characters. (7d6c28f)✨ Support checking illegal row and column. (45a137c)
✨ Support the files surrounded by
(), [], ''
. (69e9948 , d5d6497 , be81611 , e0374d7 , 9270127)✨ Resolve paths containing
.
and..
as actual paths bygetCanonicalPath
. (43f8567)✨ Support comma or semicolon separated paths. (08f2ad6 , 0085f6c)
Support path end with
row:col
.✨ Support for resolving symbolic links. (ef7336c , 721ca98 , cf8d80a)
Compatible with IDEA Resolve Symlinks plugin. (ef7336c)
Delay resolving symbolic links until the hyperlink is clicked. (721ca98)
Detect a junction/reparse point . (cf8d80a)
✨ Resolve
~
to user's home directory. (3f55264)Support both Unix and Windows ( PowerShell support
~
).✨ Support C# stacktrace in Rider . (638016f)
✨ Support Gradle build stacktrace. (9270127)
✨ Better support for
file:
protocol. (0f6fe80 , 0696ea7 , c0340dd)Compatible with leading slash added by
slashify
.Optional
authority component
in URI can be empty//
.✨ Support
jar:
protocol. (cd3de13)Syntax:
jar:<url>!/{entry}
Invalid Jar URL. (4814808)
✨ Support matching Windows drive root. (7ff9e97)
🚸 Ignore handling Java/Kotlin stackTrace as ExceptionFilter does well. (58d994a)
Separate
methodName
andfileName
in Java stackTrace .🚸 Ignore
File.exists
with UNC path . (1b4bc46)🔧 Settings
🐛 Fix settings cannot be saved. (0890012)
Separate PersistentStateComponent and Configurable because they are different. A new instance of
Configurable
will be created each time when theSettings Dialog
is opening.✨ Add
Reload file cache
action to Event Log or Notifications tool window . (4e2433b)Support manually reload file cache.
Show logs in
Event Log
.✨ Add
DEBUG_MODE
config. (d70ef6c)Show notification only once when
debug mode
is not enabled.✨ Add
ignore pattern
config to exclude paths that do not need to be highlighted. (d353d6b , 53f2205 , 69eeb44)Paths containing only
[./\]
are ignored by default. (205adad)Default ignore
node_modules
asIC-2021.2.1
will index the whole directory and there are too many files. (7b5a445)closes
♻️ Default values should be maintained separately in
AwesomeConsoleDefaults
. (75d572a)🐛 Fix the problem of IDE and external programs opening some non-text files at the same time. (b363994)
✨ Add
searchFiles
config to more easily disableFilter
without restarting the IDE. (81eb6cf)✨ Add
searchClasses
config to toggle searching classes in the indices. (782d0f5)✨ Add
filePattern
config to allow user-defined file patterns (Regex). (773b116)✨ Add
useIgnoreStyle
config. (a9319b9 , ef9b135)Use an empty hyperlink to prevent incorrect hyperlinks generated by other plugins.
This feature is not supported in the Terminal because JediTerm does not use the highlightAttributes parameter.
ref: Feature request: Link highlight color #64
✨ Add
useResultLimit
config to limit the count ofmatchingFiles
for performance. (2fedafe)🐛 Fix the
Choose Target File
popup is not show in the correct project when opening multiple projects and using Terminal. (c9ffc18)Fix "Choose Target File" popup
config checkbox. (23312e3 , 08567db)🎨 Build
🎨 Add missing Gradle configuration files.
Run IDE with Plugin (b5c255d)
Build Plugin (6cffcdc)
✨ Support hot swapping using the JRebel Gradle plugin . (0a9720f)
Default enabled only for the
Run IDE with Plugin
task.🚨 Integration testing
✅ Correct and add the test cases.
♻️ Fix
assertPathDetection
asdetectPaths
matches more files and usesFile.exists
to determine if it is valid. (7506c3d)♻️ Support
assertPathDetection
matching multiple expected values. (08f2ad6)✨ Highlight the output using
ANSI escape code
. (f67bd0a)💄 Use UsefulTestCase in JUnit 4 . (43ef098)
📸 Snapshots
The left is before, the right is after fixed.