vivaxy / vscode-conventional-commits

💬Conventional Commits for VSCode.
https://marketplace.visualstudio.com/items?itemName=vivaxy.vscode-conventional-commits
MIT License
317 stars 34 forks source link

[FEAT] Default emoji for types #31

Open vanntile opened 4 years ago

vanntile commented 4 years ago

Is your feature request related to a problem? Please describe. I wish to be able to add descriptions and default emoji for types.

Describe the solution you'd like Using cz-emoji, you can set custom types in the .czrc file. For example:

{
  "path": "cz-emoji",
  "config": {
    "cz-emoji": {
      "conventional": true,
      "types": [
        {
          "emoji": "🚧",
          "code": ":construction:",
          "description": "Work in progress.",
          "name": "wip"
        },
        {
          "emoji": "🌟",
          "code": ":star2:",
          "description": "Adding features.",
          "name": "feature"
        },
        {
          "emoji": "🐛",
          "code": ":bug:",
          "description": "Fixing stuff.",
          "name": "fix"
        }
      ]
    }
  }
}

Describe alternatives you've considered commitlint-config-gitmoji can add emoji in enum-types, but it isn't semantically valid and it wouldn't set the default icon for the types.

Additional context Thank you for this great project. I would contribute with guidance.

vivaxy commented 4 years ago

Thanks for your suggestion.

Could you please provide a detailed example of how you wish to commit step by step and how you'd like the commit message to be?

vanntile commented 4 years ago

Hello, yes, of course. I would be happy to make it more detailed. I'll assume a .czrc configuration such as the one in the initial message. Using cz-cli and cz-emoji, in the terminal, I am able to do something like this:

ex

It would be great to be able to skip the third step of using the vscode-conventional-commits (i.e. choosing the emoji by hand) and use a specific emoji associated with the type of the commit. These associations are in the commitizen config file (or the package-json config section of the cz-emoji adapter).

If it would be possible to read that configuration file in order to set the steps of the extension, it would be easy as well to set the descriptions of the types (right now they are "From the commitlint config") as you can see in the preview above.

Finally, the commitlint config isn't sufficient for something as this because it errors on adding new keys in the config object of different names than the specific ones (and we can't augment the type-enum array).

How do I see the new extension option? As a new setting for the configuration used to read defaults: default/commitlint/commitizen. If any of the first two, the behavior is already there. If the last one is set, the behavior is described above.

vivaxy commented 4 years ago

Thanks. Have you tried vscode-commitizen? Does it work in your situation?

About the feature: I assume this feature autofills the emoji part of current extension. And maybe more: Should the extension support all the customizations of the commitizen?

About the implementation: Maybe we can make the extension more adaptive to the .czrc configurations. Some refactors should be done to support the adaptivity. I'm not sure how to do it right now. I'll try looking into it.

vanntile commented 4 years ago

Your assumption is correct. I'll try to look into this myself sometimes next week. Thank you for the support.

s00500 commented 3 years ago

This sounds really like the thing missing, I basically only came here because I think having gitmoji and typeselection seperate causes confusion...