From b91adeafca4443cd110d65e09e2907582048e5d9 Mon Sep 17 00:00:00 2001 From: Gustavo Real Date: Sat, 5 Sep 2020 09:40:39 +0200 Subject: [PATCH 1/5] [Bugfix] Use workaround to unblock tests on 1.31.0 (#29) --- out/test/runTest.js | 5 ++++- out/test/runTest.js.map | 2 +- out/test/suite/index.js | 3 +++ out/test/suite/index.js.map | 2 +- src/test/runTest.ts | 5 ++++- src/test/suite/index.ts | 4 ++++ 6 files changed, 17 insertions(+), 4 deletions(-) diff --git a/out/test/runTest.js b/out/test/runTest.js index c7cd78c..f068209 100644 --- a/out/test/runTest.js +++ b/out/test/runTest.js @@ -30,7 +30,10 @@ function main() { launchArgs: [ `--user-data-dir=${testUserDir}`, '--disable-extensions' - ] + ], + extensionTestsEnv: { + 'VSCODE_VERSION': vscodeMinimumVersion, + } }); yield vscode_test_1.runTests({ extensionDevelopmentPath, diff --git a/out/test/runTest.js.map b/out/test/runTest.js.map index fde9dae..c8efd61 100644 --- a/out/test/runTest.js.map +++ b/out/test/runTest.js.map @@ -1 +1 @@ -{"version":3,"file":"runTest.js","sourceRoot":"","sources":["../../src/test/runTest.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6BAA6B;AAE7B,6CAAuC;AAEvC,SAAe,IAAI;;QAClB,IAAI;YACH,4DAA4D;YAC5D,yCAAyC;YACzC,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEnE,0BAA0B;YAC1B,iCAAiC;YACjC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YAEpE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEtD,MAAM,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YAC/E,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAE/E,MAAM,sBAAQ,CACb;gBACC,OAAO,EAAE,oBAAoB;gBAC7B,wBAAwB;gBACxB,kBAAkB;gBAClB,UAAU,EAAE;oBACX,mBAAmB,WAAW,EAAE;oBAChC,sBAAsB;iBACtB;aACD,CACD,CAAC;YAEF,MAAM,sBAAQ,CACb;gBACC,wBAAwB;gBACxB,kBAAkB;gBAClB,UAAU,EAAE;oBACX,mBAAmB,WAAW,EAAE;oBAChC,sBAAsB;iBACtB;aACD,CACD,CAAC;SACF;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAChB;IACF,CAAC;CAAA;AAED,IAAI,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"runTest.js","sourceRoot":"","sources":["../../src/test/runTest.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6BAA6B;AAE7B,6CAAuC;AAEvC,SAAe,IAAI;;QAClB,IAAI;YACH,4DAA4D;YAC5D,yCAAyC;YACzC,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEnE,0BAA0B;YAC1B,iCAAiC;YACjC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YAEpE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEtD,MAAM,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YAC/E,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAE/E,MAAM,sBAAQ,CACb;gBACC,OAAO,EAAE,oBAAoB;gBAC7B,wBAAwB;gBACxB,kBAAkB;gBAClB,UAAU,EAAE;oBACX,mBAAmB,WAAW,EAAE;oBAChC,sBAAsB;iBACtB;gBACD,iBAAiB,EAAE;oBAClB,gBAAgB,EAAE,oBAAoB;iBACtC;aACD,CACD,CAAC;YAEF,MAAM,sBAAQ,CACb;gBACC,wBAAwB;gBACxB,kBAAkB;gBAClB,UAAU,EAAE;oBACX,mBAAmB,WAAW,EAAE;oBAChC,sBAAsB;iBACtB;aACD,CACD,CAAC;SACF;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAChB;IACF,CAAC;CAAA;AAED,IAAI,EAAE,CAAC"} \ No newline at end of file diff --git a/out/test/suite/index.js b/out/test/suite/index.js index e8e1d1f..d298297 100644 --- a/out/test/suite/index.js +++ b/out/test/suite/index.js @@ -20,6 +20,9 @@ function run() { try { // Run the mocha test mocha.run(failures => { + if (process.env.VSCODE_VERSION === '1.31.0') { + process.exit(failures > 0 ? 1 : 0); + } if (failures > 0) { e(new Error(`${failures} tests failed.`)); } diff --git a/out/test/suite/index.js.map b/out/test/suite/index.js.map index 1ebdc6c..0673f51 100644 --- a/out/test/suite/index.js.map +++ b/out/test/suite/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/suite/index.ts"],"names":[],"mappings":";;AAAA,6BAA6B;AAC7B,+BAA+B;AAC/B,6BAA6B;AAE7B,SAAgB,GAAG;IAClB,wBAAwB;IACxB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACvB,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,IAAI;KACX,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEhD,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACxD,IAAI,GAAG,EAAE;gBACR,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;aACd;YAED,8BAA8B;YAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9D,IAAI;gBACH,qBAAqB;gBACrB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBACpB,IAAI,QAAQ,GAAG,CAAC,EAAE;wBACjB,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,QAAQ,gBAAgB,CAAC,CAAC,CAAC;qBAC1C;yBAAM;wBACN,CAAC,EAAE,CAAC;qBACJ;gBACF,CAAC,CAAC,CAAC;aACH;YAAC,OAAO,GAAG,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,CAAC;aACP;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAjCD,kBAiCC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/suite/index.ts"],"names":[],"mappings":";;AAAA,6BAA6B;AAC7B,+BAA+B;AAC/B,6BAA6B;AAE7B,SAAgB,GAAG;IAClB,wBAAwB;IACxB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACvB,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,IAAI;KACX,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEhD,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACxD,IAAI,GAAG,EAAE;gBACR,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;aACd;YAED,8BAA8B;YAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9D,IAAI;gBACH,qBAAqB;gBACrB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBACpB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,QAAQ,EAAE;wBAC5C,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACnC;oBAED,IAAI,QAAQ,GAAG,CAAC,EAAE;wBACjB,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,QAAQ,gBAAgB,CAAC,CAAC,CAAC;qBAC1C;yBAAM;wBACN,CAAC,EAAE,CAAC;qBACJ;gBACF,CAAC,CAAC,CAAC;aACH;YAAC,OAAO,GAAG,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,CAAC;aACP;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AArCD,kBAqCC"} \ No newline at end of file diff --git a/src/test/runTest.ts b/src/test/runTest.ts index 8286fa9..0752773 100644 --- a/src/test/runTest.ts +++ b/src/test/runTest.ts @@ -25,7 +25,10 @@ async function main() { launchArgs: [ `--user-data-dir=${testUserDir}`, '--disable-extensions' - ] + ], + extensionTestsEnv: { + 'VSCODE_VERSION': vscodeMinimumVersion, + } } ); diff --git a/src/test/suite/index.ts b/src/test/suite/index.ts index 7029e38..6ce2a57 100644 --- a/src/test/suite/index.ts +++ b/src/test/suite/index.ts @@ -23,6 +23,10 @@ export function run(): Promise { try { // Run the mocha test mocha.run(failures => { + if (process.env.VSCODE_VERSION === '1.31.0') { + process.exit(failures > 0 ? 1 : 0); + } + if (failures > 0) { e(new Error(`${failures} tests failed.`)); } else { From b3e94d7b91a9c6ec120930b8b5a7cc901050f6c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 5 Sep 2020 09:45:24 +0200 Subject: [PATCH 2/5] [Dependencies] Bump lodash from 4.17.15 to 4.17.20 (#25) - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.20) --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index f1d0165..9ddd45d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "php-add-property", - "version": "1.0.0", + "version": "1.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1146,9 +1146,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, "log-symbols": { From a2a14e4508615e78558d5c7b5ffcb931604d76ad Mon Sep 17 00:00:00 2001 From: Gustavo Real Date: Sat, 5 Sep 2020 09:52:16 +0200 Subject: [PATCH 3/5] [Bugfix] Do not add extra space using docblock with param (#30) --- out/property.js | 2 +- .../inputs/DocblockTypeWithParameter.php | 12 +++++++++++ .../outputs/DocblockTypeWithParameter.php | 21 +++++++++++++++++++ out/test/suite/addExistingProperty.test.js | 5 +++++ .../suite/addExistingProperty.test.js.map | 2 +- src/property.ts | 2 +- src/test/suite/addExistingProperty.test.ts | 6 ++++++ 7 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 out/test/fixtures/existing/inputs/DocblockTypeWithParameter.php create mode 100644 out/test/fixtures/existing/outputs/DocblockTypeWithParameter.php diff --git a/out/property.js b/out/property.js index 833face..80fb174 100644 --- a/out/property.js +++ b/out/property.js @@ -72,7 +72,7 @@ class Property { } let constructorParamDocblockText = `\${${docblockTypeStop}}`; if (this.getType()) { - constructorParamDocblockText = `\${${docblockTypeStop}:${this.getType()} }`; + constructorParamDocblockText = `\${${docblockTypeStop}:${this.getType()}} `; } if (utils_1.config('phpAddProperty.constructor.docblock.stopToImport') === true) { constructorParamDocblockText += `\$${dockblockImportStop}`; diff --git a/out/test/fixtures/existing/inputs/DocblockTypeWithParameter.php b/out/test/fixtures/existing/inputs/DocblockTypeWithParameter.php new file mode 100644 index 0000000..f41691d --- /dev/null +++ b/out/test/fixtures/existing/inputs/DocblockTypeWithParameter.php @@ -0,0 +1,12 @@ +name = $name; + } +} diff --git a/out/test/suite/addExistingProperty.test.js b/out/test/suite/addExistingProperty.test.js index db8a3be..0e876b5 100644 --- a/out/test/suite/addExistingProperty.test.js +++ b/out/test/suite/addExistingProperty.test.js @@ -41,6 +41,11 @@ suite('Add Existing Property', function () { yield vscode.workspace.getConfiguration('phpAddProperty').update('constructor.docblock.enable', true, true); yield runFixture('ConstructorDocblockUsingDocblock.php', new vscode.Position(8, 0)); })); + test('Should NOT add an extra space when adding property type and docblock type at the same type', () => __awaiter(this, void 0, void 0, function* () { + yield vscode.workspace.getConfiguration('phpAddProperty').update('constructor.docblock.enable', true, true); + yield vscode.workspace.getConfiguration('phpAddProperty').update('constructor.docblock.withParameter', true, true); + yield runFixture('DocblockTypeWithParameter.php', new vscode.Position(10, 22)); + })); }); function runFixture(fileName, cursorPosition) { return __awaiter(this, void 0, void 0, function* () { diff --git a/out/test/suite/addExistingProperty.test.js.map b/out/test/suite/addExistingProperty.test.js.map index 8386337..b1c0c9b 100644 --- a/out/test/suite/addExistingProperty.test.js.map +++ b/out/test/suite/addExistingProperty.test.js.map @@ -1 +1 @@ -{"version":3,"file":"addExistingProperty.test.js","sourceRoot":"","sources":["../../../src/test/suite/addExistingProperty.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"addExistingProperty.test.js","sourceRoot":"","sources":["../../../src/test/suite/addExistingProperty.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,iCAAiC;AACjC,6BAA6B;AAC7B,iCAAiC;AACjC,yBAAyB;AACzB,mCAA6E;AAE7E,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;AAE5D,KAAK,CAAC,uBAAuB,EAAE;IAC3B,KAAK,CAAC,GAAS,EAAE;QACb,MAAM,4BAAoB,EAAE,CAAC;IACjC,CAAC,CAAA,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAS,EAAE;QAChB,MAAM,4BAAoB,EAAE,CAAC;IACjC,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,mEAAmE,EAAE,GAAS,EAAE;QACjF,MAAM,UAAU,CAAC,gBAAgB,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,yDAAyD,EAAE,GAAS,EAAE;QACvE,MAAM,UAAU,CAAC,sBAAsB,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,4DAA4D,EAAE,GAAS,EAAE;QAC1E,MAAM,UAAU,CAAC,yBAAyB,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,0DAA0D,EAAE,GAAS,EAAE;QACxE,MAAM,UAAU,CAAC,iBAAiB,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,wDAAwD,EAAE,GAAS,EAAE;QACtE,MAAM,UAAU,CAAC,aAAa,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,qEAAqE,EAAE,GAAS,EAAE;QACnF,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,6BAA6B,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5G,MAAM,UAAU,CAAC,sCAAsC,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,4FAA4F,EAAE,GAAS,EAAE;QAC1G,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,6BAA6B,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5G,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,oCAAoC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnH,MAAM,UAAU,CAAC,+BAA+B,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC,CAAA,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,SAAe,UAAU,CAAC,QAAgB,EAAE,cAA+B;;QACvE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CACvB,gBAAgB,CAAC,QAAQ,CAAC,CAC7B,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE;YACjC,OAAO;SACV;QAED,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;QAEnG,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;QAE9D,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE7E,MAAM,aAAK,CAAC,6BAAqB,EAAE,GAAG,EAAE;;YACpC,MAAM,CAAC,WAAW,OAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,0CAAE,QAAQ,CAAC,OAAO,IAAI,YAAY,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACP,CAAC;CAAA;AAED,SAAS,gBAAgB,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,0BAA0B,GAAG,UAAU,IAAI,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,0BAA0B,GAAG,WAAW,IAAI,EAAE,CAAC,CAAC;AACjF,CAAC"} \ No newline at end of file diff --git a/src/property.ts b/src/property.ts index d126a6d..7a9c00c 100644 --- a/src/property.ts +++ b/src/property.ts @@ -96,7 +96,7 @@ export default class Property { let constructorParamDocblockText = `\${${docblockTypeStop}}`; if (this.getType()) { - constructorParamDocblockText = `\${${docblockTypeStop}:${this.getType()} }`; + constructorParamDocblockText = `\${${docblockTypeStop}:${this.getType()}} `; } if (config('phpAddProperty.constructor.docblock.stopToImport') === true) { diff --git a/src/test/suite/addExistingProperty.test.ts b/src/test/suite/addExistingProperty.test.ts index a92bdb9..e58fd5b 100644 --- a/src/test/suite/addExistingProperty.test.ts +++ b/src/test/suite/addExistingProperty.test.ts @@ -39,6 +39,12 @@ suite('Add Existing Property', function () { await vscode.workspace.getConfiguration('phpAddProperty').update('constructor.docblock.enable', true, true); await runFixture('ConstructorDocblockUsingDocblock.php', new vscode.Position(8, 0)); }); + + test('Should NOT add an extra space when adding property type and docblock type at the same type', async () => { + await vscode.workspace.getConfiguration('phpAddProperty').update('constructor.docblock.enable', true, true); + await vscode.workspace.getConfiguration('phpAddProperty').update('constructor.docblock.withParameter', true, true); + await runFixture('DocblockTypeWithParameter.php', new vscode.Position(10, 22)); + }); }); async function runFixture(fileName: string, cursorPosition: vscode.Position) { From ee8ba4e6608856502945aa70168fdbc3c7f47c9b Mon Sep 17 00:00:00 2001 From: Gustavo Real Date: Sat, 5 Sep 2020 10:20:03 +0200 Subject: [PATCH 4/5] [Feature] Nullable property types (#31) * Add support for nullable property types * Extract nullable types from multiple type docblock --- out/extension.js | 8 ++++++- out/extension.js.map | 2 +- out/property.js | 18 +++++++++++--- out/property.js.map | 2 +- .../fixtures/existing/inputs/NullableType.php | 12 ++++++++++ .../existing/inputs/UseNullableDocblock.php | 10 ++++++++ .../existing/outputs/NullableType.php | 21 ++++++++++++++++ .../existing/outputs/UseNullableDocblock.php | 15 ++++++++++++ out/test/suite/addExistingProperty.test.js | 7 ++++++ .../suite/addExistingProperty.test.js.map | 2 +- src/extension.ts | 11 ++++++++- src/property.ts | 24 ++++++++++++++++--- src/test/suite/addExistingProperty.test.ts | 9 +++++++ 13 files changed, 130 insertions(+), 11 deletions(-) create mode 100644 out/test/fixtures/existing/inputs/NullableType.php create mode 100644 out/test/fixtures/existing/inputs/UseNullableDocblock.php create mode 100644 out/test/fixtures/existing/outputs/NullableType.php create mode 100644 out/test/fixtures/existing/outputs/UseNullableDocblock.php diff --git a/out/extension.js b/out/extension.js index 010635f..1ad1368 100644 --- a/out/extension.js +++ b/out/extension.js @@ -149,9 +149,15 @@ function activate(context) { const typeMatch = /@var\s(\S*)/g.exec(node.value); if (typeMatch) { docblockType = typeMatch[1]; + let types = docblockType.split('|').map(type => type.trim()); + const nullableTypeIndex = types.indexOf('null'); + if (nullableTypeIndex !== -1) { + types.splice(nullableTypeIndex, 1); + docblockType = `?${types.join('|')}`; + } } } - const property = new property_1.default(propertyName, (_g = (_f = propertyAst.type) === null || _f === void 0 ? void 0 : _f.name) !== null && _g !== void 0 ? _g : docblockType); + const property = new property_1.default(propertyName, propertyAst.nullable, (_g = (_f = propertyAst.type) === null || _f === void 0 ? void 0 : _f.name) !== null && _g !== void 0 ? _g : docblockType); insertProperty_1.default(vscode.window.activeTextEditor, property, phpClass, line.text); })), vscode.commands.registerCommand('phpAddProperty.rename', () => __awaiter(this, void 0, void 0, function* () { if (vscode.window.activeTextEditor === undefined) { diff --git a/out/extension.js.map b/out/extension.js.map index 3d29abf..a4da07b 100644 --- a/out/extension.js.map +++ b/out/extension.js.map @@ -1 +1 @@ -{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,iCAAiC;AACjC,2CAAmC;AACnC,uCAAgC;AAChC,yCAAkC;AAClC,qDAA8C;AAC9C,qDAAkD;AAClD,mCAA+G;AAC/G,qDAAkD;AAClD,6DAA0D;AAC1D,2CAAgE;AAEhE,SAAsB,QAAQ,CAAC,OAAgC;;QAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,gCAAoB,CAAE,CAAC;QACxE,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;QAC9C,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAS,uBAAW,CAAC,OAAO,CAAC,CAAC;QAE7E,MAAM,YAAY,GAAG,QAAQ,CAAE,OAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,oBAAoB,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAE,eAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5G,MAAM,kBAAkB,GAAG,cAAM,CAAC,mCAAmC,CAAC,KAAK,IAAI,CAAC;QAEhF,IAAI,mBAAW,EAAE,IAAI,CAAC,kBAAkB,IAAI,oBAAoB,GAAG,YAAY,CAAC,EAAE;YACjF,IAAI;gBACH,MAAM,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;gBACpE,MAAM,QAAQ,GAAG,GAAG,aAAa,aAAa,CAAC;gBAC/C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;gBAE9B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAC3B,UAAU,EACV,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;qBAC5B,IAAI,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;qBACnC,QAAQ,EAAE,CACZ,CAAC;gBAEF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAC7C,yBAAyB,OAAO,EAAE,EAClC,oCAAoC,OAAO,EAAE,EAC7C,MAAM,CAAC,UAAU,CAAC,GAAG,EACrB;oBACC,kBAAkB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;iBAC5D,CACD,CAAC;gBAEF,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC5E,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;aAC1B;YAAC,OAAO,KAAK,EAAE;gBACf,IAAI,mBAAW,EAAE,EAAE;oBAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBACrB;aACD;SACD;QAED,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,uBAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEzD,OAAO,CAAC,aAAa,CAAC,IAAI,CACzB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,oBAAoB,EAAE,GAAS,EAAE;YAChE,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBACjD,OAAO;aACP;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAEzD,MAAM,SAAS,GAAG,IAAI,oBAAS,CAAC;gBAC/B,GAAG,EAAE;oBACJ,aAAa,EAAE,KAAK;oBACpB,UAAU,EAAE,IAAI;iBAChB;gBACD,KAAK,EAAE;oBACN,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;oBACpB,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,IAAI;iBAChB;gBACD,MAAM,EAAE;oBACP,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;iBACpB;aACD,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YAEpD,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,GAAG,CAAC,CAAC;YAEjC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YAEjF,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;YAE5D,IAAI,CAAC,QAAQ,EAAE;gBACd,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;gBAEvD,OAAO;aACP;YAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC7C,WAAW,EAAE,yBAAyB;aACtC,CAAC,CAAC;YAEH,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC7C,OAAO;aACP;YAED,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAC,IAAI,CAAC,CAAC;YAEpC,wBAAc,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC9F,CAAC,CAAA,CAAC,EACF,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,uBAAuB,EAAE,GAAS,EAAE;;YACnE,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBACjD,OAAO;aACP;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAEzD,MAAM,SAAS,GAAG,IAAI,oBAAS,CAAC;gBAC/B,GAAG,EAAE;oBACJ,aAAa,EAAE,KAAK;oBACpB,UAAU,EAAE,IAAI;iBAChB;gBACD,KAAK,EAAE;oBACN,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;oBACpB,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,IAAI;iBAChB;gBACD,MAAM,EAAE;oBACP,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;iBACpB;aACD,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YAEpD,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,GAAG,CAAC,CAAC;YAEjC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YAEjF,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;YAE5D,IAAI,CAAC,QAAQ,EAAE;gBACd,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;gBAEvD,OAAO;aACP;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAElD,MAAM,OAAO,GAAI,SAAS,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,IAAI,IAAI,CAAS,CAAC;YAEzE,IAAI,aAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC,CAAC,2CAAG,IAAI,MAAK,mBAAmB,EAAE;gBAC/D,OAAO;aACP;YAED,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAE3I,MAAM,UAAU,GAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAoB,CAAC;YAErE,MAAM,WAAW,SAAG,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,WAAC,OAAA,OAAA,WAAW,CAAC,IAAI,0CAAE,IAAI,MAAK,YAAY,CAAA,EAAA,CAAC,mCAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAE/G,MAAM,YAAY,SAAG,WAAW,CAAC,IAAI,0CAAE,IAAI,CAAC;YAE5C,MAAM,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE;gBACjE,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE;oBACtC,OAAO,KAAK,CAAA;iBACZ;gBAED,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,WAAgB,EAAE,EAAE,WAAC,OAAA,OAAA,WAAW,CAAC,IAAI,0CAAE,IAAI,MAAK,YAAY,CAAA,EAAA,CAAC,CAAC;YAC5F,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,oBAAoB,EAAE;gBAC1B,OAAO;aACP;YAED,IAAI,YAAY,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAG,oBAAoB,CAAC,eAAe,0CAAE,MAAM,CAAA,EAAE,CAAC,EAAE,EAAE;gBACtE,MAAM,IAAI,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBAErD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;oBACjC,SAAS;iBACT;gBAED,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAElD,IAAI,SAAS,EAAE;oBACd,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC5B;aACD;YAED,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAC,YAAY,cAAE,WAAW,CAAC,IAAI,0CAAE,IAAI,mCAAI,YAAY,CAAC,CAAC;YAEpF,wBAAc,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,CAAC,CAAA,CAAC,EACF,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,uBAAuB,EAAE,GAAS,EAAE;YACnE,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBACjD,OAAO;aACP;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAEzD,MAAM,SAAS,GAAG,IAAI,oBAAS,CAAC;gBAC/B,GAAG,EAAE;oBACJ,aAAa,EAAE,KAAK;oBACpB,UAAU,EAAE,IAAI;iBAChB;gBACD,KAAK,EAAE;oBACN,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;oBACpB,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,IAAI;iBAChB;gBACD,MAAM,EAAE;oBACP,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;iBACpB;aACD,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YAEpD,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,GAAG,CAAC,CAAC;YAEjC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YAEjF,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAExD,IAAI,CAAC,QAAQ,EAAE;gBACd,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;gBAEvD,OAAO;aACP;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAElD,IAAI,YAAY,GAAG,mCAA2B,CAC7C,IAAI,CAAC,IAAI,EACT,QAAQ,EACR,SAAS,EACT,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAC/C,CAAC;YAEF,IAAI,CAAC,YAAY,EAAE;gBAClB,YAAY,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC/C,WAAW,EAAE,4CAA4C;iBACzD,CAAC,CAAC;aACH;YAED,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC7D,OAAO;aACP;YAED,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAC,YAAY,CAAC,CAAC;YAE5C,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;gBACxD,WAAW,EAAE,6BAA6B;aAC1C,CAAC,CAAC;YAEH,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACnE,OAAO;aACP;YAED,MAAM,WAAW,GAAG,IAAI,kBAAQ,CAAC,eAAe,CAAC,CAAC;YAElD,+BAAc,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QACjF,CAAC,CAAA,CAAC,EACF,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,2BAA2B,EAAE,GAAS,EAAE;YACvE,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBACjD,OAAO;aACP;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAEzD,MAAM,SAAS,GAAG,IAAI,oBAAS,CAAC;gBAC/B,GAAG,EAAE;oBACJ,aAAa,EAAE,KAAK;oBACpB,UAAU,EAAE,IAAI;iBAChB;gBACD,KAAK,EAAE;oBACN,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;oBACpB,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,IAAI;iBAChB;gBACD,MAAM,EAAE;oBACP,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;iBACpB;aACD,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YAEpD,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,GAAG,CAAC,CAAC;YAEjC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YAEjF,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAExD,IAAI,CAAC,QAAQ,EAAE;gBACd,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;gBAEvD,OAAO;aACP;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAElD,IAAI,YAAY,GAAG,mCAA2B,CAC7C,IAAI,CAAC,IAAI,EACT,QAAQ,EACR,SAAS,EACT,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAC/C,CAAC;YAEF,IAAI,CAAC,YAAY,EAAE;gBAClB,YAAY,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC/C,WAAW,EAAE,iDAAiD;iBAC9D,CAAC,CAAC;aACH;YAED,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC7D,OAAO;aACP;YAED,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAC,YAAY,CAAC,CAAC;YAE5C,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;gBACxD,WAAW,EAAE,6BAA6B;aAC1C,CAAC,CAAC;YAEH,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACnE,OAAO;aACP;YAED,uCAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QACzF,CAAC,CAAA,CAAC,EACF,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,uBAAuB,EAAE,GAAS,EAAE;YACnE,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBACjD,OAAO;aACP;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAEzD,MAAM,SAAS,GAAG,IAAI,oBAAS,CAAC;gBAC/B,GAAG,EAAE;oBACJ,aAAa,EAAE,KAAK;oBACpB,UAAU,EAAE,IAAI;iBAChB;gBACD,KAAK,EAAE;oBACN,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;oBACpB,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,IAAI;iBAChB;gBACD,MAAM,EAAE;oBACP,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;iBACpB;aACD,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YAEpD,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,GAAG,CAAC,CAAC;YAEjC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YAEjF,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAExD,IAAI,CAAC,QAAQ,EAAE;gBACd,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;gBAEvD,OAAO;aACP;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAElD,IAAI,YAAY,GAAG,mCAA2B,CAC7C,IAAI,CAAC,IAAI,EACT,QAAQ,EACR,SAAS,EACT,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAC/C,CAAC;YAEF,IAAI,CAAC,YAAY,EAAE;gBAClB,YAAY,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC/C,WAAW,EAAE,4CAA4C;iBACzD,CAAC,CAAC;aACH;YAED,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC7D,OAAO;aACP;YAED,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAC,YAAY,CAAC,CAAC;YAE5C,+BAAc,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpE,CAAC,CAAA,CAAC,EACF,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,8CAA8C,EAAE,GAAS,EAAE;;YAC1F,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBACjD,OAAO;aACP;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAEzD,MAAM,SAAS,GAAG,IAAI,oBAAS,CAAC;gBAC/B,GAAG,EAAE;oBACJ,aAAa,EAAE,KAAK;oBACpB,UAAU,EAAE,IAAI;iBAChB;gBACD,KAAK,EAAE;oBACN,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;oBACpB,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,IAAI;iBAChB;gBACD,MAAM,EAAE;oBACP,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;iBACpB;aACD,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YAEpD,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,GAAG,CAAC,CAAC;YAEjC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YAEjF,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;YAE5D,IAAI,CAAC,QAAQ,EAAE;gBACd,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;gBAEvD,OAAO;aACP;YAED,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,KAAK,CACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EACnF,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAC/E,CAAC;YAEF,MAAM,eAAe,GAAG,0CAAkC,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YAE5F,IAAI,eAAe,KAAK,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;gBACxD,OAAO;aACP;YAED,MAAA,MAAM,CAAC,MAAM,CAAC,gBAAgB,0CAAE,IAAI,CACnC,WAAW,CAAC,EAAE;gBACb,WAAW,CAAC,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YACrD,CAAC,EACD;gBACC,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,KAAK;aACpB,EACA;QACH,CAAC,CAAA,CAAC,CACF,CAAC;IACH,CAAC;CAAA;AA3cD,4BA2cC;AAED,2DAA2D;AAC3D,SAAgB,UAAU,KAAK,CAAC;AAAhC,gCAAgC"} \ No newline at end of file +{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/out/property.js b/out/property.js index 80fb174..82558f9 100644 --- a/out/property.js +++ b/out/property.js @@ -2,13 +2,17 @@ Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("./utils"); class Property { - constructor(name, type) { + constructor(name, nullable = false, type) { this.name = name; + this.nullable = nullable; this.type = type; } getName() { return this.name; } + isNullable() { + return this.nullable === true; + } getType() { return this.type; } @@ -50,7 +54,11 @@ class Property { getParameterText(tabStops) { let tabStopsText = `$${tabStops.constructorParameterType}`; if (this.getType()) { - tabStopsText = `\${${tabStops.constructorParameterType}:${this.getType()}}`; + let typeText = this.getType(); + if (this.isNullable()) { + typeText = `?${typeText}`; + } + tabStopsText = `\${${tabStops.constructorParameterType}:${typeText}}`; } if (utils_1.config('phpAddProperty.property.stopToImport') === true) { tabStopsText += `$${tabStops.constructorParameterStop}`; @@ -72,7 +80,11 @@ class Property { } let constructorParamDocblockText = `\${${docblockTypeStop}}`; if (this.getType()) { - constructorParamDocblockText = `\${${docblockTypeStop}:${this.getType()}} `; + let typeText = this.getType(); + if (this.isNullable()) { + typeText = `${typeText}|null`; + } + constructorParamDocblockText = `\${${docblockTypeStop}:${typeText}} `; } if (utils_1.config('phpAddProperty.constructor.docblock.stopToImport') === true) { constructorParamDocblockText += `\$${dockblockImportStop}`; diff --git a/out/property.js.map b/out/property.js.map index ccb2721..927e838 100644 --- a/out/property.js.map +++ b/out/property.js.map @@ -1 +1 @@ -{"version":3,"file":"property.js","sourceRoot":"","sources":["../src/property.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"property.js","sourceRoot":"","sources":["../src/property.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/out/test/fixtures/existing/inputs/NullableType.php b/out/test/fixtures/existing/inputs/NullableType.php new file mode 100644 index 0000000..4e7ea0a --- /dev/null +++ b/out/test/fixtures/existing/inputs/NullableType.php @@ -0,0 +1,12 @@ +name = $name; + } +} diff --git a/out/test/fixtures/existing/outputs/UseNullableDocblock.php b/out/test/fixtures/existing/outputs/UseNullableDocblock.php new file mode 100644 index 0000000..09fbfc9 --- /dev/null +++ b/out/test/fixtures/existing/outputs/UseNullableDocblock.php @@ -0,0 +1,15 @@ +name = $name; + } +} diff --git a/out/test/suite/addExistingProperty.test.js b/out/test/suite/addExistingProperty.test.js index 0e876b5..af6430b 100644 --- a/out/test/suite/addExistingProperty.test.js +++ b/out/test/suite/addExistingProperty.test.js @@ -46,6 +46,13 @@ suite('Add Existing Property', function () { yield vscode.workspace.getConfiguration('phpAddProperty').update('constructor.docblock.withParameter', true, true); yield runFixture('DocblockTypeWithParameter.php', new vscode.Position(10, 22)); })); + test('Should add an existing property with a nullable type', () => __awaiter(this, void 0, void 0, function* () { + yield vscode.workspace.getConfiguration('phpAddProperty').update('constructor.docblock.enable', true, true); + yield runFixture('NullableType.php', new vscode.Position(10, 0)); + })); + test('Should add a nullable property using type from property docblock', () => __awaiter(this, void 0, void 0, function* () { + yield runFixture('UseNullableDocblock.php', new vscode.Position(8, 0)); + })); }); function runFixture(fileName, cursorPosition) { return __awaiter(this, void 0, void 0, function* () { diff --git a/out/test/suite/addExistingProperty.test.js.map b/out/test/suite/addExistingProperty.test.js.map index b1c0c9b..251b2fc 100644 --- a/out/test/suite/addExistingProperty.test.js.map +++ b/out/test/suite/addExistingProperty.test.js.map @@ -1 +1 @@ -{"version":3,"file":"addExistingProperty.test.js","sourceRoot":"","sources":["../../../src/test/suite/addExistingProperty.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"addExistingProperty.test.js","sourceRoot":"","sources":["../../../src/test/suite/addExistingProperty.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index 66e73ff..0e769a4 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -188,10 +188,19 @@ export async function activate(context: vscode.ExtensionContext) { if (typeMatch) { docblockType = typeMatch[1]; + + let types = docblockType.split('|').map(type => type.trim()); + const nullableTypeIndex = types.indexOf('null'); + + if (nullableTypeIndex !== -1) { + types.splice(nullableTypeIndex, 1); + + docblockType = `?${types.join('|')}`; + } } } - const property = new Property(propertyName, propertyAst.type?.name ?? docblockType); + const property = new Property(propertyName, propertyAst.nullable, propertyAst.type?.name ?? docblockType); insertProperty(vscode.window.activeTextEditor, property, phpClass, line.text); }), diff --git a/src/property.ts b/src/property.ts index 7a9c00c..dfa7f9f 100644 --- a/src/property.ts +++ b/src/property.ts @@ -2,10 +2,12 @@ import { config, indentText, getVisibilityChoice } from "./utils"; export default class Property { private name: string; + private nullable: Boolean; private type?: string; - constructor(name: string, type?: string) { + constructor(name: string, nullable: Boolean = false, type?: string) { this.name = name; + this.nullable = nullable; this.type = type; } @@ -13,6 +15,10 @@ export default class Property { return this.name; } + public isNullable() { + return this.nullable === true; + } + public getType() { return this.type; } @@ -65,7 +71,13 @@ export default class Property { let tabStopsText = `$${tabStops.constructorParameterType}`; if (this.getType()) { - tabStopsText = `\${${tabStops.constructorParameterType}:${this.getType()}}`; + let typeText = this.getType(); + + if (this.isNullable()) { + typeText = `?${typeText}`; + } + + tabStopsText = `\${${tabStops.constructorParameterType}:${typeText}}`; } if (config('phpAddProperty.property.stopToImport') === true) { @@ -96,7 +108,13 @@ export default class Property { let constructorParamDocblockText = `\${${docblockTypeStop}}`; if (this.getType()) { - constructorParamDocblockText = `\${${docblockTypeStop}:${this.getType()}} `; + let typeText = this.getType(); + + if (this.isNullable()) { + typeText = `${typeText}|null`; + } + + constructorParamDocblockText = `\${${docblockTypeStop}:${typeText}} `; } if (config('phpAddProperty.constructor.docblock.stopToImport') === true) { diff --git a/src/test/suite/addExistingProperty.test.ts b/src/test/suite/addExistingProperty.test.ts index e58fd5b..0b8b900 100644 --- a/src/test/suite/addExistingProperty.test.ts +++ b/src/test/suite/addExistingProperty.test.ts @@ -45,6 +45,15 @@ suite('Add Existing Property', function () { await vscode.workspace.getConfiguration('phpAddProperty').update('constructor.docblock.withParameter', true, true); await runFixture('DocblockTypeWithParameter.php', new vscode.Position(10, 22)); }); + + test('Should add an existing property with a nullable type', async() => { + await vscode.workspace.getConfiguration('phpAddProperty').update('constructor.docblock.enable', true, true); + await runFixture('NullableType.php', new vscode.Position(10, 0)); + }); + + test('Should add a nullable property using type from property docblock', async() => { + await runFixture('UseNullableDocblock.php', new vscode.Position(8, 0)); + }); }); async function runFixture(fileName: string, cursorPosition: vscode.Position) { From 7eef6578ea265db9188ff3494efaa3f4d39d62ca Mon Sep 17 00:00:00 2001 From: Gustavo Date: Sat, 5 Sep 2020 10:31:11 +0200 Subject: [PATCH 5/5] Release 1.1.0 --- CHANGELOG.md | 8 ++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd510ff..5e8c98d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.1.0 (2020-09-05) + +### Added +- [#28](https://github.com/kotfire/vscode-php-add-property/issues/28) Add support for nullable property types + +### Fixed +- [#26](https://github.com/kotfire/vscode-php-add-property/issues/26) Do not add extra space using docblock with param + ## 1.0.0 (2020-08-31) ### Added diff --git a/package-lock.json b/package-lock.json index 9ddd45d..463652d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "php-add-property", - "version": "1.0.1", + "version": "1.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 147868e..0cce785 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Manage PHP class properties", "publisher": "kotfire", "license": "SEE LICENSE IN LICENSE", - "version": "1.0.1", + "version": "1.1.0", "engines": { "vscode": "^1.31.0" },