jdaugherty commented on PR #441: URL: https://github.com/apache/grails-intellij-plugin/pull/441#issuecomment-6300182492
Thanks, @amondel2. The last revision addressed both blockers and nearly all of the inline comments. Rather than leave the phase 2 items for another round, I've finished them on this branch. Here is what changed on top of `dd808bf`: **External folders and ordering (the deferred phase 2 items)** - A custom folder can again be an absolute path, or one starting with `~`, anywhere on disk, including outside the project. A relative path still resolves against the application root, and `..` may climb out of it, for example to a sibling module. `FolderPaths.find` / `toAbsolutePath` is now the one resolution rule; the provider, the settings page, the actions and the refresh listener all use it. - The platform lists no children for a directory the project doesn't cover. A custom folder outside the project now lists its own contents through `GrailsExternalDirectoryNode`, leaving out what the IDE ignores everywhere. - `GrailsRootNode` / `GrailsApplicationNode.contains()` and the pane's select-in target accept files inside custom folders, so *Select Opened File* also reaches files outside the project. - Folders render in the configured order, this project's first, instead of alphabetically. Each node carries its position, and `GrailsNodeComparator` breaks the shared-weight tie with it. IMPROVEMENT-PLAN §2.8 and §2.9 are removed, since both are now implemented. **Settings page** - The `+`/`-` text rows are replaced by `GrailsCustomFoldersList`, a `ToolbarDecorator` table with these actions: *Add Folder…* (folder chooser; stores the path relative to the application root when the folder is under it, absolute otherwise), *Type a Path* (for a folder that doesn't exist yet), inline edit, remove and move up/down. Each row shows whether its path resolves to a folder, is not there yet, or names a file. - This project's list now sits above the global defaults, matching the order they render in. - *Apply* now refuses only a path that names a file; absolute and `..` paths are allowed. **Review leftovers** - Deleted the unregistered `GrailsPluginConfigurable`. The reply said it was gone, but the file was still in the branch. - Trimmed the README paragraph. - *Add* also compares what each configured path resolves to, so a folder already configured under another spelling (absolute, or via `..`) doesn't offer *Add* again. **Tests** - `GrailsCustomFoldersRowsTest` became `GrailsCustomFoldersListTest`. It ports every case and adds chooser, reorder, typed-path and row-status cases. - Tests that pinned alphabetical sorting or rejected absolute paths now assert the new behaviour. New tests cover external folders, `..` paths, reveal and `contains()` for external files, and the comparator tie-break. - Before keeping the new tests, I reverted three of the fixes (external listing, comparator tie-break, application-node `contains`) and checked that the matching tests failed. - The full suite (1395 tests) and `rat` pass locally. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
