Real Vim ninjas count every keystroke - do you?

Pick a challenge, fire up Vim, and show us what you got.

Changelog, Rules & FAQ, updates: @vimgolf, RSS.

Your VimGolf key: please sign in

$ gem install vimgolf
$ vimgolf setup
$ vimgolf put 5491377167afde00024ba4cf

Refactoring useless Method away

Real-life challenge, convert a bunch of ifs to a switch statement

Start file
if (isTyp(YBD.Typ_GEBAEUDE, currentTyp)) {
	immobilienItem.setGebaeudeNr(currentItem.getGebaeudeNr());
}
if (isTyp(YBD.Typ_OBJEKT, currentTyp)) {
	immobilienItem.setObjektNr(currentItem.getObjektNr());
}
if (isTyp(YBD.Typ_ETAGE, currentTyp)) {
	immobilienItem.setEtageNr(currentItem.getEtageNr());
}
if (isTyp(YBD.Typ_IMMOBILIE, currentTyp)) {
	immobilienItem.setImmobilieNr(currentItem.getImmobilieNr());
}
if (isTyp(YBD.Typ_HAUS, currentTyp)) {
	immobilienItem.setHausNr(currentItem.getHausNr());
}
End file
switch (currentTyp) {
	case YBD.Typ_GEBAEUDE:
		immobilienItem.setGebaeudeNr(currentItem.getGebaeudeNr());
		break;
	case YBD.Typ_OBJEKT:
		immobilienItem.setObjektNr(currentItem.getObjektNr());
		break;
	case YBD.Typ_ETAGE:
		immobilienItem.setEtageNr(currentItem.getEtageNr());
		break;
	case YBD.Typ_IMMOBILIE:
		immobilienItem.setImmobilieNr(currentItem.getImmobilieNr());
		break;
	case YBD.Typ_HAUS:
		immobilienItem.setHausNr(currentItem.getHausNr());
		break;
}

View Diff

1,14c1,16
< if (isTyp(YBD.Typ_GEBAEUDE, currentTyp)) {
< 	immobilienItem.setGebaeudeNr(currentItem.getGebaeudeNr());
< }
< if (isTyp(YBD.Typ_OBJEKT, currentTyp)) {
< 	immobilienItem.setObjektNr(currentItem.getObjektNr());
< }
< if (isTyp(YBD.Typ_ETAGE, currentTyp)) {
< 	immobilienItem.setEtageNr(currentItem.getEtageNr());
< }
< if (isTyp(YBD.Typ_IMMOBILIE, currentTyp)) {
< 	immobilienItem.setImmobilieNr(currentItem.getImmobilieNr());
< }
< if (isTyp(YBD.Typ_HAUS, currentTyp)) {
< 	immobilienItem.setHausNr(currentItem.getHausNr());
---
> switch (currentTyp) {
> 	case YBD.Typ_GEBAEUDE:
> 		immobilienItem.setGebaeudeNr(currentItem.getGebaeudeNr());
> 		break;
> 	case YBD.Typ_OBJEKT:
> 		immobilienItem.setObjektNr(currentItem.getObjektNr());
> 		break;
> 	case YBD.Typ_ETAGE:
> 		immobilienItem.setEtageNr(currentItem.getEtageNr());
> 		break;
> 	case YBD.Typ_IMMOBILIE:
> 		immobilienItem.setImmobilieNr(currentItem.getImmobilieNr());
> 		break;
> 	case YBD.Typ_HAUS:
> 		immobilienItem.setHausNr(currentItem.getHausNr());
> 		break;

Solutions by @nickandbro:

Unlock 24 remaining solutions by signing in and submitting your own entry
Created by: @tannerli

36 active golfers, 124 entries

Solutions by @nickandbro:
47
#7 - nickGPT / @nickandbro

08/28/2024 at 04:46AM

48
#>8 - nickGPT / @nickandbro

08/28/2024 at 04:46AM

49
#>9 - nickGPT / @nickandbro

08/28/2024 at 04:46AM

50
#>10 - nickGPT / @nickandbro

08/28/2024 at 04:46AM

52
#>12 - nickGPT / @nickandbro

08/28/2024 at 04:46AM

53
#>13 - nickGPT / @nickandbro

08/28/2024 at 04:46AM

54
#>14 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

56
#>16 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

57
#>18 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

58
#>19 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

60
#>21 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

61
#>23 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

62
#>24 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

64
#>25 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

65
#>26 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

67
#>27 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

69
#>28 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

71
#>29 - nickGPT / @nickandbro

08/28/2024 at 04:45AM

77
#>31 - nickGPT / @nickandbro

08/28/2024 at 04:44AM

78
#>32 - nickGPT / @nickandbro

08/28/2024 at 04:44AM

79
#>33 - nickGPT / @nickandbro

08/28/2024 at 04:44AM

83
#>34 - nickGPT / @nickandbro

08/28/2024 at 04:44AM

92
#>35 - nickGPT / @nickandbro

08/28/2024 at 04:44AM

113
#>36 - nickGPT / @nickandbro

08/28/2024 at 04:44AM