Skip to content

Commit

Permalink
Merge pull request #403 from mshima/ktlint
Browse files Browse the repository at this point in the history
commit .editorconfig for ktlint transform
  • Loading branch information
DanielFran authored Jul 26, 2024
2 parents 08a28d4 + 24f4576 commit 00884dd
Showing 1 changed file with 45 additions and 1 deletion.
46 changes: 45 additions & 1 deletion generators/ktlint/generator.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@ import { chmod, mkdir, rm } from 'node:fs/promises';
import { platform } from 'node:os';
import { join } from 'node:path';
import { pipeline } from 'node:stream/promises';

import BaseApplicationGenerator from 'generator-jhipster/generators/base-application';
import { autoCrlfTransform } from 'generator-jhipster/generators/bootstrap/support';
import axios from 'axios';
import { createCommitTransform } from 'mem-fs-editor/transform';
import { createConflicterTransform, createYoResolveTransform } from '@yeoman/conflicter';

import { createKtlintTransform, filterKtlintTransformFiles } from './internal/ktlint-transform.js';

export default class extends BaseApplicationGenerator {
Expand Down Expand Up @@ -64,6 +69,12 @@ export default class extends BaseApplicationGenerator {
async defaultTemplateTask({ control }) {
if (!this.options.skipKtlintFormat) {
const destinationPath = this.destinationPath();

this.queueCommitTransformStream({
name: 'commiting .editorconfig with ktlint configuration',
filter: file => file.path.startsWith(destinationPath) && file.path.endsWith('.editorconfig'),
});

this.queueTransformStream(
{
name: 'formating using ktlint',
Expand Down Expand Up @@ -94,7 +105,14 @@ export default class extends BaseApplicationGenerator {

get [BaseApplicationGenerator.POST_WRITING]() {
return this.asPostWritingTaskGroup({
async postWriting({ application }) {
editEditorconfigFile() {
this.editFile('.editorconfig', content =>
content.includes('[*.{kt,kts}]')
? content
: `${content}\n[*.{kt,kts}]\nindent_size = 4\nktlint_standard_no-wildcard-imports = disabled\n`,
);
},
async addNpmScript({ application }) {
const command = application.buildToolGradle ? './gradlew :ktlintFormat' : './mvnw ktlint:format';
this.packageJson.merge({
scripts: {
Expand Down Expand Up @@ -144,4 +162,30 @@ export default class extends BaseApplicationGenerator {
},
});
}

async queueCommitTransformStream(options, ...transforms) {
const skipYoResolveTransforms = [];
if (!this.options.skipYoResolve) {
skipYoResolveTransforms.push(createYoResolveTransform());
}

const autoCrlfTransforms = [];
if (this.jhipsterConfig.autoCrlf) {
autoCrlfTransforms.push(await autoCrlfTransform({ baseDir: this.destinationPath() }));
}

this.queueTransformStream(
{
refresh: false,
...options,
// Disable progress since it blocks stdin.
disabled: true,
},
...skipYoResolveTransforms,
...transforms,
...autoCrlfTransforms,
createConflicterTransform(this.env.adapter, { ...this.env.conflicterOptions }),
createCommitTransform(),
);
}
}

0 comments on commit 00884dd

Please sign in to comment.