Giter Site home page Giter Site logo

vspacecode.github.io's Introduction

VSpaceCode (Preview)

Docs Version Installs Ratings

VSpaceCode Logo

This extension is inspired by spacemacs and aiming to provide similar experience in VSCode. An action menu trigger by space key is implemented to reduce memorization of shortcuts. You can change the editor group, change the file language, and check git status without leaving your keyboard. This provides the speed to shortcut while minimizing typing comparing to fuzzy search in the command palette or shortcut memorizing.

Features

  • Spacemacs like action menu to reduce memorization of shortcuts
  • All menu items are customizable
  • The menu key is customizable
  • Bundle all the extensions needed out-of-the box

VSpaceCode actions

Project history

This project was initially started by StreakyCobra as a configuration file for VSCodeVim to be merged in your settings.json file. stevenguh developed on his side stevenguh/spacecode also with the goal to bring Spacemacs bindings to VSCode. After some discussion we agreed to merge the two projects to keep this niche community unified. stevenguh solution was technically better, but this project had a larger community and was better referenced, so it was decided move his extension here and to deprecate stevenguh/spacecode.

If you prefer this project's first approach using settings without an extension, see the vscode-vim branch.

Installation and documentation

You can find installation instructions and documentation in the VSpaceCode website.

Release Notes

See CHANGELOG.md

Contributing

All feature requests and help are welcome. Please check out our contributing guide on how you can help.

This project is maintained by different people around the world in their free time. Thank you for your contribution. ❤️

Related projects

  • Intellimacs - Spacemacs' like key bindings for IntelliJ platform
  • Spaceclipse - Spacemacs’ like key bindings for Eclipse
  • SpaceVim - A community-driven modular vim distribution

vspacecode.github.io's People

Contributors

ajongaro avatar ayanamists avatar erichonorez avatar forivall avatar jonathanjameswatson avatar lrusso96 avatar macintacos avatar marcoieni avatar matklad avatar mayanez avatar mdudzinski avatar mihem avatar mly32 avatar muscaw avatar nl3v avatar patrickwulfe avatar practicalli-johnny avatar siboehm avatar sleepyfran avatar smalewski avatar stevenguh avatar tgroshon avatar the-compiler avatar tkukurin avatar troglotit avatar tshort avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

vspacecode.github.io's Issues

Can't get `,` to trigger major mode?

Bug description

I noticed that in 0.8.3, , should be able to trigger major mode. Doesn't seem like it's working for me, and I'm not sure why. My VSCode settings are here if you'd like to take a look at them (apologies in advance, there is a lot going on there): https://github.com/macintacos/dotfiles/tree/trunk/vscode

I know I can just go to the settings.jsonc file copy/paste it into my own settings myself, but I think I'd rather make sure it's working the "proper" way. Any pointers on how to debug it?

To Reproduce

  1. Install the extensions
  2. Go to a filetype that is supported with major mode (like Go)
  3. Hit ,

Expected behavior

The major mode menu would open up for the language you're in.

System information

System Info
Item Value
CPUs Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz (16 x 2300)
GPU Status 2d_canvas: enabled
flash_3d: enabled
flash_stage3d: enabled
flash_stage3d_baseline: enabled
gpu_compositing: enabled
metal: disabled_off
multiple_raster_threads: enabled_on
oop_rasterization: enabled
opengl: enabled_on
protected_video_decode: unavailable_off
rasterization: enabled
skia_renderer: disabled_off_ok
video_decode: enabled
webgl: enabled
webgl2: enabled
Load (avg) 4, 2, 2
Memory (System) 32.00GB (0.54GB free)
Process Argv --crash-reporter-id c6914155-166f-4175-88b3-886232e620cd
Screen Reader no
VM 0%
Extensions (156)
Extension Author (truncated) Version
better-comments aar 2.1.0
html-snippets abu 0.2.1
scss-lint ada 0.1.10
vscode-javascript-snippet-pack aka 0.1.6
Bookmarks ale 11.4.0
project-manager ale 11.3.1
vscode-bazel Baz 0.4.0
search-crates-io bel 1.2.1
color-info bie 0.5.1
emojisense bie 0.8.0
github-markdown-preview bie 0.0.2
markdown-checkbox bie 0.1.3
markdown-emoji bie 0.0.9
markdown-preview-github-styles bie 0.1.6
markdown-yaml-preamble bie 0.0.4
vscode-fish bma 1.0.20
file-browser bod 0.2.10
htmltagwrap bra 0.0.7
vscode-tailwindcss bra 0.4.3
language-hugo-vscode bud 1.2.0
better-toml bun 0.3.2
npm-intellisense chr 1.3.1
path-intellisense chr 2.3.0
gotoanything Cma 0.4.1
gitignore cod 0.6.0
bracket-pair-colorizer-2 Coe 0.2.0
disableligatures Coe 0.0.10
compulim-vscode-closetag Com 1.2.0
vscode-svgviewer css 2.0.0
postcss css 1.0.9
transformer dak 1.9.0
vscode-markdownlint Dav 0.37.2
vscode-eslint dba 2.1.13
vscode-dash dee 2.4.0
confluence-markup den 0.1.8
vscode-deno den 2.3.2
xml Dot 2.5.1
viml dun 0.1.7
gitlens eam 10.2.2
vscode-html-css ecm 0.2.3
EditorConfig Edi 0.15.1
vscode-npm-script eg2 0.3.13
LogFileHighlighter emi 2.9.0
vscode-great-icons emm 2.1.58
vsc-material-theme-icons equ 1.2.0
prettier-vscode esb 5.7.1
vscode-go-test-adapter eth 0.1.3
copy-relative-path-and-line-numbers ezf 0.2.8
vscode-git-history fab 2.0.5
vscode-open-in-github fab 1.2.3
file-icons fil 1.0.26
vscode-firefox-debug fir 2.9.1
vscode-npm fkn 3.3.0
auto-close-tag for 0.5.9
code-runner for 0.11.1
shell-format fox 7.0.1
sort-json-array fvc 2.0.3
nightswitch gha 1.1.0
vscode-sublime-merge gio 1.2.0
vscode-pull-request-github Git 0.20.1
go gol 0.18.0
gc-excelviewer Gra 3.0.40
todo-tree Gru 0.0.186
terraform has 2.2.3
vscode-test-explorer hbe 2.19.1
npm-dependency-links her 1.2.0
headwind hey 1.7.0
vscode-settings-cycler hoo 1.0.1
output-colorizer IBM 0.1.2
smarty imp 0.3.0
customize-ui ioc 0.1.49
monkey-patch ioc 0.1.11
path-autocomplete ion 1.15.0
fuzzy-search jac 0.0.3
RelativePath jak 1.4.0
TypeScriptImport kev 1.17.0
json2csv kha 0.0.1
vscode-gutter-preview kis 0.26.2
vscode-format-context-menu lac 1.0.4
rpm-spec Lau 0.3.1
vscode-simple-icons Lau 1.13.5
vscode-fix-checksums leh 1.1.0
node-module-intellisense lei 1.5.0
expand-region let 0.1.4
bash-ide-vscode mad 1.11.0
rust-analyzer mat 0.2.360
Lisp mat 0.1.10
rainbow-csv mec 1.7.1
HTMLHint mka 0.10.0
mongodb-vscode mon 0.2.1
vscode-less mrm 0.6.3
vscode-docker ms- 1.7.0
vscode-kubernetes-tools ms- 1.2.1
python ms- 2020.9.114305
vscode-pylance ms- 2020.10.2
cpptools ms- 1.0.1
vscode-typescript-tslint-plugin ms- 1.2.3
debugger-for-chrome msj 4.12.11
vscode-paste-image mus 1.0.4
color-highlight nau 2.3.0
vetur oct 0.28.0
indent-rainbow ode 7.4.0
vscode-nunjucks-formatter oki 0.1.3
fix-json oli 0.1.2
markdown-checkbox PKi 1.7.0
material-icon-theme PKi 4.3.0
vscode-css-peek pra 4.0.0
text-power-tools qcz 1.17.0
ruby reb 0.27.0
vscode-xml red 0.13.0
vscode-yaml red 0.11.1
explorer-exclude-vscode-extension Red 1.2.0
shellman Rem 4.7.0
vscode-sort-json ric 1.18.1
synthwave-vscode Rob 0.1.8
bash-debug rog 0.3.9
zsh-debug rog 0.1.3
nunjucks ron 0.3.0
codeui rya 0.2.0
partial-diff ryu 1.4.1
multi-command ryu 1.4.0
vscode-javascript-booster sbu 14.0.1
crates ser 0.5.3
code-settings-sync Sha 3.4.3
vscode-brewfile sha 1.0.0
trailing-spaces sha 0.3.1
mdx sil 0.1.0
vscode-fileutils sle 3.3.3
snipsnap-vscode sni 1.1.0
control-snippets svi 1.9.1
vscode-markdown-paste-image tel 0.12.3
shellcheck tim 0.12.1
alex-linter tla 0.6.5
go-to-method tri 0.2.0
sort-lines Tyr 1.9.0
errorlens use 3.2.3
remove-empty-lines use 0.0.6
vscode-lldb vad 1.6.0
vscode-icons vsc 11.0.0
vim vsc 1.17.1
gistfs vsl 0.1.8
vspacecode VSp 0.8.3
whichkey VSp 0.8.2
file-icons-mac way 1.0.1
vscode-icons-mac way 7.25.3
vscode-todo-highlight way 1.0.4
twig wha 1.0.2
vscode-ruby win 0.27.0
change-case wma 1.0.0
better-align wwm 1.1.6
clang-format xav 1.9.0
vs-code-wiki Yun 0.5.0
markdown-all-in-one yzh 3.3.0
material-theme zhu 3.9.3
html-css-class-completion Zig 1.19.0
vscode-open-in-github ziy 1.3.6

(13 theme extensions excluded)

Decide how to document unreleased features

This was already discussed here, but now I am opening a proper issue

Problem

When some features go in the VSpaceCode or Which Key master branch, they are not released until a tag is created.
Instead this website is built on each commit.
We don't want to put in the website documentation for features that are not yet released.

Possible solutions

This are the solutions that come to my mind:

Develop branch

Commits on this repositories will be done on the develop branch.
The website reflects the master branch, so we could merge the develop branch with the master branch when VSpaceCode and Which Key are released.

Cons:

  • confusing for new contributors

Store documentation on the VSpaceCode and Which Key repositories

Documentation for the project will be stored in the project themselves (maybe in a docs/ dir or something like this).
So, on each tag on VSpaceCode and Which Key repositories, the docs for those projects are updated in some way.
I don't know if this is feasible, we should check how to do it.

Pros:

  • we could release documentation for VSpaceCode and Which Key independently.

Rebuild the website only on tag

Similar to the approach of the VSpaceCode and Which Key repositories, we could trigger the github action that builds this website only on tags.

steven commented on this here, by saying:

That might still be problematic because two repos maintain two versions. But some sort of develop/master or release/next separation would still be nice.

Could you elaborate on that? I haven't fully understood your point.

versioning with docusaurus

see https://v2.docusaurus.io/docs/versioning

Markdown linting is not working

Bug description

If you take a look at actions, for example here you can see that markdown lint doesn't work, since the usage page is showed.

Screenshots

image

Additional context

The args field is not parsed correctly.
I will try to work on a fix.

Document inability to get back to previous match with `,`

Fork from VSpaceCode/VSpaceCode@a0060b5#commitcomment-46841828

Just be aware, that this collides with f{character} and using , to get back to the previous match.

After using f{character} you can type ; to go to the next occurrence of the character or , to go to the previous one.

Although it seems to be consistent with spacemacs, we should document this behavior and its escape hatch (remove that from the settings.json). I am not sure if this should be document in the Major mode page or the troubleshooting page.

Content tagging for internal/public builds

Problem

I haven't found a way to do single-sourcing with Docusaurus.

The idea of single-sourcing is to generate different outputs with one set of source files.
A typical example is for private and public docs, where the private docs are a superset of the public docs.

This is done by tagging content that can be included or excluded at build time.

Solution

Flare, Sphinx and other docs-specific tools allow writers to tag content, very much like Docusaurus uses admonitions.

Sphinx example

non-tagged content
 
.. only:: my-admin-content-tag
 
   some tagged text

non-tagged content

And you can include this tag in the output with

sphinx-build -t my-admin-content-tag #this builds the admin docs

That's a great system to not limit the number of outputs.

Example with Docusaurus

Maybe 1 new admonition would do the trick as a first step, for instance, internal:

That's public text. It will be in the internal and public output.

:::internal
That bit is internal only and will not appear in the public output.
:::

Then we could build the internal docs with a flag:

yarn build --internal

Giving us:

That's public text. It will be in the internal and public output.

That bit is internal only and will not appear in the public output.

Would this be achievable?

Cannot Redefine Keybindings on a per Workspace Basis

Bug description

I am attempting to redefine <SPC> + p for a particular workspace, however the bindings that I have defined are not overriding the original bindings.

To Reproduce

  1. Open a workspace in VS Code.
  2. Add the following to .vscode/settings.json
	"vspacecode.bindingOverrides": [
		{
			"key": "p",
			"name": "+Project",
			"icon": "project",
			"type": "bindings",
			"bindings": [
				{
					"key": "C",
					"name": "Compile project",
					"icon": "gear",
					"type": "command",
					"command": "workbench.action.tasks.build"
				}
			]
                }
         ]
  1. Type <SPC> + p
  2. Witness that the menu has not changed.

Expected behavior

After the above steps I would expect that the menu would now only contain the "Compile project" command, but it contains all the default commands.

Additional context

We should be able to override keybindings on a per workspace basis by adding the keybindings to .vscode/settings.json.

I should also mention that I am able to add things to the menu via

		{
			"keys": "p.C",
			"name": "Compile project",
			"icon": "gear",
			"type": "command",
			"command": "workbench.action.tasks.build"
		},

but I am unable to redefine a keybinding like so

		{
			"keys": "p.l",
			"name": "Launch package",
			"icon": "rocket",
			"command": "workbench.action.tasks.runTask",
			"args": "state_machine: Launch"
		},

optimize interface for mobile

image

This is how I see the website on my 5" display (I took the screenshot from desktop by shrinking the window size, but it's the same)

Here are my complaints:

  • "Get Started" button is attached to the left
  • the "VSpaceCode" title is on two lines, but potentially it could fit in one line
  • the gif is not centered

List extension list in documentation

Bug description

The documentation here states:

This extension is published as an extension pack, i.e. it installs all the necessary extensions for the best-of-the box experience.

It would be great if you added a list of all the extensions that it installs, right after that paragraph in the documentation.

Branch alignment problem

Bug description

I wanted to do a PR against vspacecode-next, but right now it is not aligned with master.
How do you align the two? Do we have to remember to do something manual everytime there is a release?

Screenshots

image

customize major mode bindings

Bug description

I see in the documentation that I can use vspacecode.bindingOverrides to customize existing bindings, or add new ones in a menu. It works great for "simple" bindings, but I can't manage to find the right syntax to customize a major mode-specific binding.

Example: I want to change the command used to toggle text to bold, only in markdown major mode.
I want all the other markdown-specific bindings to stay like they are, I just want to modify m x b for example (only for markdown, that is)
Is it possible?

setup website with docusaurus v2

Create the VSpaceCode website

This repository should contain the website of VSpaceCode built with https://v2.docusaurus.io/.

deploy

Ideally, master branch should contain files used by docusaurus to build the website. The generated files should be published to the gh-pages branch.
Deploy should be automatically done, ideally with github actions.

website content

Just to start, you can take the difference sections of the VSpaceCode README and which-key and put them in different sections of the documentation.

If you want, you can try to remove overlaps between the two READMEs.

keep it simple

You can start with a really simple template to begin with. No fancy stuff is needed.

If you disagree with some of the points above or you need help just leave a comment here :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.