Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project management #5079

Open
MathiasKandelborg opened this issue Jul 26, 2020 · 1 comment
Open

Project management #5079

MathiasKandelborg opened this issue Jul 26, 2020 · 1 comment

Comments

@MathiasKandelborg
Copy link

MathiasKandelborg commented Jul 26, 2020

Is your feature request related to a problem? Please describe.
The structure and management of the project. Simple things breaking on updates, no way to tell what is currently going on.

Describe the solution you'd like
People(plural) helping with maintaining the source code, tests, wiki pages(you need those instead of one giant readme), issues, etc.

Splitting the plugins from the main extension. Use submodules if you want it together. It's just that I have no idea what is the extension itself and what is a plugin when looking through files. Everything is neatly mangled, and exists peacefully together. E.g: here easymotion (plugin right?) is hardcoded in the logic for vim modes

// https://github.com/VSCodeVim/Vim/blob/master/src/mode/mode.ts

  switch (vimState.currentMode) {
    case Mode.Normal:
      return '-- NORMAL --';
    case Mode.Insert:
      return '-- INSERT --';
    case Mode.Visual:
      return '-- VISUAL --';
    case Mode.VisualBlock:
      return '-- VISUAL BLOCK --';
    case Mode.VisualLine:
      return '-- VISUAL LINE --';
    case Mode.Replace:
      return '-- REPLACE --';
    case Mode.EasyMotionMode:
      return '-- EASYMOTION --';
    case Mode.EasyMotionInputMode:
      return '-- EASYMOTION INPUT --';
    case Mode.SurroundInputMode:
      return '-- SURROUND INPUT --';
    case Mode.Disabled:
      return '-- VIM: DISABLED --';
    case Mode.SearchInProgressMode:
      if (globalState.searchState === undefined) {
        this._logger.warn(`globalState.searchState is undefined.`);
        return '';
      }

Describe alternatives you've considered
Not using the extension

Additional context
Are you doing okay? It seems like this project is growing way bigger than anticipated and there haven't been much restructuring or any pauses for any proper fixes/solutions to come along. My best additional context is the giant readme which is a huge mess no one is ever going to read it in one go(therefore split it up), let alone find exactly what they want easily. For this project to be manageable you need to restructure everything with the future in mind.

840 (841 with this) issues to be solved is way too daunting. You need to remove duplicates, make labels and have people label their own issues as questions, suggestions, feedback, bug or whatever have you. I have a hard time seeing this project living in 2 years from its current state.

@J-Fields
Copy link
Member

People(plural)

That'd be great; I'm always happy to accept contributions

wiki pages(you need those instead of one giant readme)

Agreed, improving user documentation and splitting it up into wiki pages is on my near-term to-do list

Splitting the plugins from the main extension

This isn't feasible at the moment

It seems like this project is growing way bigger than anticipated and there haven't been much restructuring or any pauses for any proper fixes/solutions to come along.

Reducing technical debt has been a focus recently, actually. There are a series of large refactors I'd like to do in the near future, but tackling them immediately would mean creating a lot of additional work in merge conflicts with existing PRs.

840 (841 with this) issues to be solved is way too daunting.

I have a hard time seeing this project living in 2 years from its current state.

I'm not sure how you've come to these conclusions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants