fix: normalize line endings in check generators#1331
Merged
joaodinissf merged 1 commit intoMay 16, 2026
Merged
Conversation
rubenporras
previously approved these changes
May 6, 2026
…output regardless of platform
joaodinissf
force-pushed
the
fix/normalize-line-endings-in-check-generators
branch
from
May 6, 2026 23:17
a827404 to
146e3eb
Compare
joaodinissf
marked this pull request as ready for review
May 6, 2026 23:21
rubenporras
approved these changes
May 7, 2026
joaodinissf
added a commit
that referenced
this pull request
May 20, 2026
Delete `LfNormalizingFileSystemAccess.java` and remove its wrap calls from `CheckGenerator.xtend` and `CheckCfgGenerator.xtend`. The decorator was introduced in PR #1331 as a post-hoc normaliser against CRLF leaks from various emission paths. After: - step 1 of this stack (#1352) — `.mwe2` `lineDelimiter` and `ddk-configuration` runtime prefs both flipped to `\n` - step 2 (#1353) — `line.separator=\n` propagated to every source-bearing bundle's `.settings/org.eclipse.core.runtime.prefs` - the preceding commit on this branch — `KeywordAnalysisHelper` no longer uses `PrintWriter.println()` …every emission path now produces LF natively. The wrapper is no-op work and the conditional `instanceof IFileSystemAccess2` cast it introduced is no longer needed. Closes #1345 — the planned extension of the same wrapper to `Scope` / `Format` / `Export` generators is no longer needed for the same reason. Those generators are already clean of `Strings.newLine()`, `System.lineSeparator()`, and hardcoded `"\r\n"` emission (audited). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
joaodinissf
added a commit
to joaodinissf/dsl-devkit
that referenced
this pull request
Jul 23, 2026
…atorInformation Xtext's LineSeparatorHarmonizer post-processes every text IFileSystemAccess write and owns the final bytes, but its default ILineSeparatorInformation is System.lineSeparator() — so headless builds (xtext-maven-plugin, MWE2) emit platform-dependent endings that fight the repository's LF policy (.gitattributes '* text=auto eol=lf', dsldevkit#1314) and rewrite generated files on other platforms. Bind LfLineSeparatorInformation ('\n') in every DDK language runtime module (Check, CheckCfg, Scope, Export, Format, Valid, Expression) so generation is deterministic for all current and future generators of these languages at the pipeline's actual enforcement point. In the IDE the UI modules' preference/sensing provider still takes precedence, so workspaces keep converging to the checked-out form. Trace-aware JvmModel output is unaffected (its appendable is LF by construction and the harmonizer deliberately skips traced content). Completes the direction of dsldevkit#1331/dsldevkit#1413 at the root; tracked by dsldevkit#1345. Assisted by Claude
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
To produce identical output regardless of platform.