-
Notifications
You must be signed in to change notification settings - Fork 133
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
Enable major mode support #84
Comments
This should be supported by VSpaceCode/vscode-which-key#11. Should we include some major mode bindings built-in to the default bindings of VSpaceCode? |
I think so. I was thinking about doing an issue where we list some programming languages, like
and we ask to our community to take ownership of one of them and to write the key bindings for that. In addition, they should provide a document where they list needed extensions used by these key bindings, so that users know what to install. |
That's would be awesome to have some community maintain ones. I am wondering how should we bundle major mode?
I imagining this is a little bit like the community-config repo, where people contribute a major mode specific to that language and its extension. The question, should we ship some default major modes? |
Option 3 may be ok just for markdown in my opinion. We already ship a lot of extensions. I would follow option 2. In VSpaceCode we write the key bindings for a lot of major modes. If you execute there there will be an error that says that the extension was not found, right? At that point the user may choose to install the used extension. If they want to use other extension they can override the key bindings and maybe they will find something useful in community-config, which may contain alternative major modes, with other extension, for example. |
Not sure if I follow
Basically option 2 and only support
Is this a describing option 3 where we ship some bindings that require specific extensions and we don't bundle them? In that case, the error will probably say something like command "cpp.somecommand" not found. You are right that, the user can try to figure what extension that command requires and install it or override completely. I am assuming even if we are going with option 3, we won't be bundling extension the major bindings might require. Maybe that's a good point that we should go with the more manual approach where the user will have to add major mode via override manually. Side note: We can potentially improve the way to specifies such major mode config instead of in the user's overrides (This would be more like option 1) My currently imagination is that it can be a community own repo that will be another extension a user can install like |
Yes, exactly! And Markdown is the only extension that I would consider to install by default, but I am not so convinced about it.
This would be awesome, but only in certain situations. But if we have some major mode that uses different obscure extensions, we could bundle them as another extension. So, if we agree on the approach we could procede to open a new issue where we describe this process and we ask for partecipation. |
Let's not bundle anything in the beginning 👍
That's an interesting point. Installing
However, this needs more thinking in what's the best way do the plumbing The alternative, which is available now, is to do a I would be happy to set up an example major mode once we agree on the approach. |
I don't want the user to manage major modes in their own
If there is a relevant overhead in loading a lot of major modes, we definitely should use the
Yes, in the cases where there are different extensions to bundle, the Anyway to me both the two approaches are fine :) |
So that's the option 3 where we put all the major mode in the
We load all of the bindings upfront, so there are some overhead indeed if the conditional bindings get big. This is where my head was thinking the imagined approach (because it needs some engineering effort/thinking) where we can use the extension infrastructure to install major mode instead of binding all in
I think to start out, we can put the conditional bindings in the the I am not ruling out a possibility that in the future we can have a hybrid where to bundle some and also allows the extension approach. For now maybe we should try just putting them directly in |
yes!
yes!
and yes :) |
I added a single binding for markdown as an example in 23b5b75. Feel free to add more to it or other mode :) Maybe we should target top 5-10 languages for now until we have the extension system? |
Yes, we can open an issue where we list most used languages in vscode, as tasks in the format |
That sounds good. Do you mind leading that effort? |
opened #98 |
What do you think of a "fallback major mode" that would, for example, react to How feasible is that and does it fit with the design philosophy? |
I didn't get what you mean. |
As I said here:
Maybe the discussion in the above linked issue could be relevant.
The text was updated successfully, but these errors were encountered: