Skip to content

Commit 8b1fbc6

Browse files
committed
Generate Fluent Setters 3.1.0
1 parent 8e71957 commit 8b1fbc6

File tree

4 files changed

+42
-9
lines changed

4 files changed

+42
-9
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Change Log
22

3+
## [3.1.0] - 2018-08-13
4+
5+
### Added
6+
7+
- Generate Fluent Setters
8+
39
## [3.0.0] - 2018-08-04
410

511
### Added

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
- Generate Constructor
88
- Generate Constructor Using Fields
99
- Generate Equals And HashCode
10+
- Generate Fluent Setters
1011

1112
## Usage
1213

@@ -18,18 +19,17 @@ none
1819

1920
## Release Notes
2021

21-
## [3.0.0] - 2018-08-04
22+
## [3.1.0] - 2018-08-13
2223

2324
### Added
2425

25-
- generate Equals And HashCode
26+
- Generate Fluent Setters
2627

27-
## [2.1.0] - 2018-07-24
28+
## [3.0.0] - 2018-08-04
2829

2930
### Added
3031

31-
- generate Constructor
32-
- generate Constructor Using Fields
32+
- generate Equals And HashCode
3333

3434
-----------------------------------------------------------------------------------------------------------
3535

package.json

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "java-generate-setters-getters",
33
"displayName": "Java Code Generators",
4-
"description": "Java Setter Getter toString Constructor hashCode equals code snippets generator",
5-
"version": "3.0.1",
4+
"description": "Java Setter Getter toString Constructor hashCode equals fluent code snippets generator",
5+
"version": "3.1.0",
66
"publisher": "sohibe",
77
"keywords": [
88
"java",
@@ -27,7 +27,8 @@
2727
"onCommand:extension.javaGenerateToString",
2828
"onCommand:extension.javaGenerateConstructor",
2929
"onCommand:extension.javaGenerateConstructorUsingFields",
30-
"onCommand:extension.javaGenerateHashCodeAndEquals"
30+
"onCommand:extension.javaGenerateHashCodeAndEquals",
31+
"onCommand:extension.javaGenerateFluentSetters"
3132
],
3233
"main": "./out/extension",
3334
"contributes": {
@@ -51,6 +52,10 @@
5152
{
5253
"command": "extension.javaGenerateHashCodeAndEquals",
5354
"title": "Java: Generate HashCode And Equals"
55+
},
56+
{
57+
"command": "extension.javaGenerateFluentSetters",
58+
"title": "Java: Generate Fluent Setters"
5459
}
5560
],
5661
"menus": {
@@ -78,7 +83,12 @@
7883
{
7984
"when": "resourceLangId == java",
8085
"command": "extension.javaGenerateHashCodeAndEquals",
81-
"group": "YourGroup@4"
86+
"group": "YourGroup@5"
87+
},
88+
{
89+
"when": "resourceLangId == java",
90+
"command": "extension.javaGenerateFluentSetters",
91+
"group": "YourGroup@6"
8292
}
8393
]
8494
}

src/extension.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,17 @@ export function activate(context: vscode.ExtensionContext) {
3131
insertSnippet(generateHashCodeAndEquals(getDeclerations(getSelectedText()), className, classNameFirstLower));
3232
});
3333

34+
let generateFluentSettersCommand = vscode.commands.registerCommand('extension.javaGenerateFluentSetters', () => {
35+
let className = getClassName(vscode.window.activeTextEditor!.document.getText());
36+
insertSnippet(generateFluentSetters(getDeclerations(getSelectedText()), className));
37+
});
38+
3439
context.subscriptions.push(generateSettersGettersCommand);
3540
context.subscriptions.push(generateToStringCommand);
3641
context.subscriptions.push(generateConstructorCommand);
3742
context.subscriptions.push(generateConstructorUsingFieldsCommand);
3843
context.subscriptions.push(generateHashCodeAndEqualsCommand);
44+
context.subscriptions.push(generateFluentSettersCommand);
3945
}
4046

4147

@@ -126,4 +132,15 @@ export function generateHashCodeAndEquals(declerations: Decleration[], className
126132

127133
result += `\t}\n`;
128134
return result;
135+
}
136+
137+
function generateFluentSetters(declerations: Decleration[], className: string): string {
138+
let result = '';
139+
declerations.forEach(it => {
140+
result += `\n\tpublic ${className} ${it.variableName}(${it.variableType} ${it.variableName}) {
141+
\t\tthis.${it.variableName} = ${it.variableName};
142+
\t\treturn this;
143+
\t}\n`;
144+
});
145+
return result;
129146
}

0 commit comments

Comments
 (0)