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

fix(codemirror): use correct method to indent the code on tab key press #527

Merged
merged 4 commits into from
Jul 12, 2022

Conversation

danilowoz
Copy link
Member

@danilowoz danilowoz commented Jul 8, 2022

CodeSandbox logoCodeSandbox logo  Open in CodeSandbox Web Editor | VS Code

Hey @joshwcomeau, this PR addresses your bug report about the ability to override the extensionsKeymap. Turns out, it was a mistake on our side and we were literally inserting a tab instead of regularly indenting the line. So, this should fix your original problem and make the CodeEditor behavior more consistent.

Closes #522

@codesandbox-ci
Copy link

codesandbox-ci bot commented Jul 8, 2022

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit 72d4a6a:

Sandbox Source
Sandpack Configuration
Sandpack extensionsKeymap bug Issue #522

@github-actions
Copy link

github-actions bot commented Jul 8, 2022

Size changes

sandpack-react

Total base (gzip) Total current (gzip) +/-
161 kb 161 kb 🎉 -35 bytes (-0.02%)
Details
Dependency name / file Base Current +/-
0 522 kb 522 kb ✅ 0 byte
main 480 kb 480 kb 🎉 -160 bytes (-0.03%)
@codesandbox/sandpack-react 83 kb 62 kb 🎉 -21 kb (-25.07%)
@code-hike/classer 1 kb 1 kb ✅ 0 byte
@codesandbox/sandpack-client 11 kb 8 kb 🎉 -3 kb (-24.83%)
@stitches/core 16 kb 16 kb ✅ 0 byte
@codemirror/state 35 kb 35 kb ✅ 0 byte
@codemirror/view 167 kb 167 kb ✅ 0 byte
@codemirror/closebrackets 6 kb 6 kb ✅ 0 byte
@codemirror/matchbrackets 4 kb 4 kb ✅ 0 byte
@codemirror/commands 24 kb 24 kb ✅ 0 byte
@codemirror/comment 5 kb 5 kb ✅ 0 byte
@codemirror/gutter 10 kb 10 kb ✅ 0 byte
@codemirror/highlight 12 kb 12 kb ✅ 0 byte
@codemirror/history 9 kb 9 kb ✅ 0 byte
@react-hook/intersection-observer 2 kb 2 kb ✅ 0 byte
@codemirror/lang-css 11 kb 11 kb ✅ 0 byte
@codemirror/lang-javascript 6 kb 6 kb ✅ 0 byte
@codemirror/lang-html 15 kb 15 kb ✅ 0 byte
@codemirror/text 13 kb 13 kb ✅ 0 byte
style-mod 3 kb 3 kb ✅ 0 byte
@codemirror/rangeset 16 kb 16 kb ✅ 0 byte
w3c-keyname 2 kb 2 kb ✅ 0 byte
@lezer/common 34 kb 34 kb ✅ 0 byte
@codemirror/language 19 kb 19 kb ✅ 0 byte
@react-hook/passive-layout-effect 191 bytes 191 bytes ✅ 0 byte
@lezer/css 9 kb 9 kb ✅ 0 byte
@lezer/html 12 kb 12 kb ✅ 0 byte
@lezer/javascript 54 kb 54 kb ✅ 0 byte
@codemirror/autocomplete 34 kb 34 kb ✅ 0 byte
@lezer/lr 31 kb 31 kb ✅ 0 byte
@codemirror/tooltip 14 kb 14 kb ✅ 0 byte
lodash.isequal 18 kb 18 kb ✅ 0 byte
lz-string 9 kb 9 kb ✅ 0 byte
react-devtools-inline 823 kb 823 kb ✅ 0 byte
codesandbox-import-utils 3 kb 3 kb ✅ 0 byte
package-build-stats 487 bytes 487 bytes ✅ 0 byte
intersection-observer 13 kb 13 kb ✅ 0 byte
react-is 2 kb 2 kb ✅ 0 byte

sandpack-client

Total base (gzip) Total current (gzip) +/-
7 kb 7 kb ✅ 0 byte
Details
Dependency name / file Base Current +/-
main 20 kb 20 kb 🎉 -42 bytes (-0.20%)
@codesandbox/sandpack-client 11 kb 8 kb 🎉 -3 kb (-24.83%)
codesandbox-import-utils 3 kb 3 kb ✅ 0 byte
lodash.isequal 18 kb 18 kb ✅ 0 byte
package-build-stats 487 bytes 487 bytes ✅ 0 byte

@@ -197,11 +197,27 @@ export const CodeMirror = React.forwardRef<CodeMirrorRef, CodeMirrorProps>(
const customCommandsKeymap: KeyBinding[] = [
{
key: "Tab",
run: insertTab,
run: (view): boolean => {
indentMore(view);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As indentMore returns true, this was preventing running the next command. So, here I'm grabbing the custom keybinding and running before returning it.

I'm not fully confident, but it seems to work

@joshwcomeau
Copy link
Contributor

@danilowoz Woohoo! Thanks for looking into this 😄 Really appreciate it!

@danilowoz danilowoz merged commit 6bea86b into main Jul 12, 2022
@danilowoz danilowoz deleted the draft/dank-surf branch July 12, 2022 12:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

“extensionsKeymap” doesn't let us redefine existing keymaps
2 participants