├── .gitignore ├── AGENTS.md ├── CLAUDE.md ├── LICENSE ├── README.md ├── assets └── functions.png ├── eslint.config.js ├── index.html ├── package.json ├── postcss.config.js ├── public ├── favicon-16.png ├── favicon-32.png ├── favicon-48.png ├── favicon.ico ├── favicon.png ├── icon-192.png ├── icon-512.png └── manifest.json ├── src ├── App.css ├── App.tsx ├── assets │ └── react.svg ├── components │ ├── challenge │ │ └── VimChallenge.tsx │ ├── common │ │ ├── KeyChip.tsx │ │ ├── KeyGroupBlock.tsx │ │ ├── KeyHistoryPanel.tsx │ │ ├── KeyListBlock.tsx │ │ ├── MarkdownBlock.tsx │ │ └── Tooltip.tsx │ ├── example │ │ └── RunExamplePlayer.tsx │ ├── layout │ │ ├── MobileHeader.tsx │ │ └── Sidebar.tsx │ ├── lesson │ │ └── LessonView.tsx │ └── settings │ │ ├── AppearanceTab.tsx │ │ ├── EditorStyleApplier.tsx │ │ ├── SettingsPanel.tsx │ │ ├── VimPlaygroundTab.tsx │ │ └── VimStatusTab.tsx ├── contexts │ └── SettingsContext.tsx ├── core │ ├── dot-command.test.ts │ ├── keyHistory.types.ts │ ├── motions.test.ts │ ├── motions.ts │ ├── operators.test.ts │ ├── operators.ts │ ├── stateUtils.ts │ ├── syntaxHighlight.ts │ ├── testUtils │ │ ├── runInNeovim.ts │ │ └── runSim.ts │ ├── types.ts │ ├── utils.ts │ ├── vimParity.test.ts │ ├── vimParityExhaustive.test.ts │ ├── vimReducer.test.ts │ └── vimReducer.ts ├── data │ ├── categories.ts │ ├── index.ts │ └── lessons │ │ ├── chapter1 │ │ ├── modes-basics.ts │ │ ├── modes-movement-mini-review.ts │ │ ├── motions-hjkl.ts │ │ └── motions-line-bounds.ts │ │ ├── chapter2 │ │ ├── motions-WORDs.ts │ │ ├── motions-words.ts │ │ ├── small-edits-chars.ts │ │ ├── words-fix-small-things.ts │ │ └── words-mini-review.ts │ │ ├── chapter3 │ │ ├── count-repeat-undo.ts │ │ ├── operator-change-basic.ts │ │ ├── operator-delete-basic.ts │ │ ├── operator-yank-basic.ts │ │ └── operators-mini-review.ts │ │ ├── chapter4 │ │ ├── change-with-find.ts │ │ ├── delete-with-find.ts │ │ ├── find-char.ts │ │ └── in-line-precision-review.ts │ │ ├── chapter5 │ │ ├── textobjects-brackets.ts │ │ ├── textobjects-mega-review.ts │ │ ├── textobjects-paragraphs.ts │ │ ├── textobjects-quotes.ts │ │ └── textobjects-words.ts │ │ └── chapter6 │ │ ├── realworld-cleanup-1.ts │ │ ├── search-basic.ts │ │ ├── search-with-operators.ts │ │ └── speedrun-challenge.ts ├── hooks │ ├── useChallenge.ts │ ├── useFontLoader.ts │ ├── useI18n.ts │ ├── useKeyHistory.ts │ ├── useProgress.ts │ ├── useSettings.ts │ └── useVimEngine.ts ├── i18n │ ├── config.ts │ ├── index.ts │ ├── locales │ │ ├── en │ │ │ ├── challenge.json │ │ │ ├── common.json │ │ │ ├── example.json │ │ │ ├── home.json │ │ │ ├── keyHistory.json │ │ │ ├── layout.json │ │ │ ├── lesson.json │ │ │ └── settings.json │ │ ├── zh-lively │ │ │ ├── challenge.json │ │ │ ├── common.json │ │ │ ├── example.json │ │ │ ├── home.json │ │ │ ├── keyHistory.json │ │ │ ├── layout.json │ │ │ ├── lesson.json │ │ │ ├── lessons.json │ │ │ └── settings.json │ │ └── zh │ │ │ ├── challenge.json │ │ │ ├── common.json │ │ │ ├── example.json │ │ │ ├── home.json │ │ │ ├── keyHistory.json │ │ │ ├── layout.json │ │ │ ├── lesson.json │ │ │ ├── lessons.json │ │ │ └── settings.json │ ├── translation-completeness.test.ts │ └── translation-structure.test.ts ├── index.css ├── main.tsx ├── pages │ ├── HomePage.tsx │ └── LessonPage.tsx └── version.ts ├── tailwind.config.js ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts └── vitest.config.ts /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/.gitignore -------------------------------------------------------------------------------- /AGENTS.md: -------------------------------------------------------------------------------- 1 | CLAUDE.md -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/CLAUDE.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/README.md -------------------------------------------------------------------------------- /assets/functions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/assets/functions.png -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/eslint.config.js -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/index.html -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/package.json -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/postcss.config.js -------------------------------------------------------------------------------- /public/favicon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/public/favicon-16.png -------------------------------------------------------------------------------- /public/favicon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/public/favicon-32.png -------------------------------------------------------------------------------- /public/favicon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/public/favicon-48.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/public/favicon.png -------------------------------------------------------------------------------- /public/icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/public/icon-192.png -------------------------------------------------------------------------------- /public/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/public/icon-512.png -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/public/manifest.json -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/App.css -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/App.tsx -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/assets/react.svg -------------------------------------------------------------------------------- /src/components/challenge/VimChallenge.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/challenge/VimChallenge.tsx -------------------------------------------------------------------------------- /src/components/common/KeyChip.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/common/KeyChip.tsx -------------------------------------------------------------------------------- /src/components/common/KeyGroupBlock.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/common/KeyGroupBlock.tsx -------------------------------------------------------------------------------- /src/components/common/KeyHistoryPanel.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/common/KeyHistoryPanel.tsx -------------------------------------------------------------------------------- /src/components/common/KeyListBlock.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/common/KeyListBlock.tsx -------------------------------------------------------------------------------- /src/components/common/MarkdownBlock.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/common/MarkdownBlock.tsx -------------------------------------------------------------------------------- /src/components/common/Tooltip.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/common/Tooltip.tsx -------------------------------------------------------------------------------- /src/components/example/RunExamplePlayer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/example/RunExamplePlayer.tsx -------------------------------------------------------------------------------- /src/components/layout/MobileHeader.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/layout/MobileHeader.tsx -------------------------------------------------------------------------------- /src/components/layout/Sidebar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/layout/Sidebar.tsx -------------------------------------------------------------------------------- /src/components/lesson/LessonView.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/lesson/LessonView.tsx -------------------------------------------------------------------------------- /src/components/settings/AppearanceTab.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/settings/AppearanceTab.tsx -------------------------------------------------------------------------------- /src/components/settings/EditorStyleApplier.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/settings/EditorStyleApplier.tsx -------------------------------------------------------------------------------- /src/components/settings/SettingsPanel.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/settings/SettingsPanel.tsx -------------------------------------------------------------------------------- /src/components/settings/VimPlaygroundTab.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/settings/VimPlaygroundTab.tsx -------------------------------------------------------------------------------- /src/components/settings/VimStatusTab.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/components/settings/VimStatusTab.tsx -------------------------------------------------------------------------------- /src/contexts/SettingsContext.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/contexts/SettingsContext.tsx -------------------------------------------------------------------------------- /src/core/dot-command.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/dot-command.test.ts -------------------------------------------------------------------------------- /src/core/keyHistory.types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/keyHistory.types.ts -------------------------------------------------------------------------------- /src/core/motions.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/motions.test.ts -------------------------------------------------------------------------------- /src/core/motions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/motions.ts -------------------------------------------------------------------------------- /src/core/operators.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/operators.test.ts -------------------------------------------------------------------------------- /src/core/operators.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/operators.ts -------------------------------------------------------------------------------- /src/core/stateUtils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/stateUtils.ts -------------------------------------------------------------------------------- /src/core/syntaxHighlight.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/syntaxHighlight.ts -------------------------------------------------------------------------------- /src/core/testUtils/runInNeovim.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/testUtils/runInNeovim.ts -------------------------------------------------------------------------------- /src/core/testUtils/runSim.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/testUtils/runSim.ts -------------------------------------------------------------------------------- /src/core/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/types.ts -------------------------------------------------------------------------------- /src/core/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/utils.ts -------------------------------------------------------------------------------- /src/core/vimParity.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/vimParity.test.ts -------------------------------------------------------------------------------- /src/core/vimParityExhaustive.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/vimParityExhaustive.test.ts -------------------------------------------------------------------------------- /src/core/vimReducer.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/vimReducer.test.ts -------------------------------------------------------------------------------- /src/core/vimReducer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/core/vimReducer.ts -------------------------------------------------------------------------------- /src/data/categories.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/categories.ts -------------------------------------------------------------------------------- /src/data/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/index.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter1/modes-basics.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter1/modes-basics.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter1/modes-movement-mini-review.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter1/modes-movement-mini-review.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter1/motions-hjkl.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter1/motions-hjkl.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter1/motions-line-bounds.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter1/motions-line-bounds.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter2/motions-WORDs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter2/motions-WORDs.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter2/motions-words.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter2/motions-words.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter2/small-edits-chars.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter2/small-edits-chars.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter2/words-fix-small-things.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter2/words-fix-small-things.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter2/words-mini-review.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter2/words-mini-review.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter3/count-repeat-undo.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter3/count-repeat-undo.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter3/operator-change-basic.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter3/operator-change-basic.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter3/operator-delete-basic.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter3/operator-delete-basic.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter3/operator-yank-basic.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter3/operator-yank-basic.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter3/operators-mini-review.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter3/operators-mini-review.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter4/change-with-find.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter4/change-with-find.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter4/delete-with-find.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter4/delete-with-find.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter4/find-char.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter4/find-char.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter4/in-line-precision-review.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter4/in-line-precision-review.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter5/textobjects-brackets.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter5/textobjects-brackets.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter5/textobjects-mega-review.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter5/textobjects-mega-review.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter5/textobjects-paragraphs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter5/textobjects-paragraphs.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter5/textobjects-quotes.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter5/textobjects-quotes.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter5/textobjects-words.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter5/textobjects-words.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter6/realworld-cleanup-1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter6/realworld-cleanup-1.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter6/search-basic.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter6/search-basic.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter6/search-with-operators.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter6/search-with-operators.ts -------------------------------------------------------------------------------- /src/data/lessons/chapter6/speedrun-challenge.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/data/lessons/chapter6/speedrun-challenge.ts -------------------------------------------------------------------------------- /src/hooks/useChallenge.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/hooks/useChallenge.ts -------------------------------------------------------------------------------- /src/hooks/useFontLoader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/hooks/useFontLoader.ts -------------------------------------------------------------------------------- /src/hooks/useI18n.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/hooks/useI18n.ts -------------------------------------------------------------------------------- /src/hooks/useKeyHistory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/hooks/useKeyHistory.ts -------------------------------------------------------------------------------- /src/hooks/useProgress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/hooks/useProgress.ts -------------------------------------------------------------------------------- /src/hooks/useSettings.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/hooks/useSettings.ts -------------------------------------------------------------------------------- /src/hooks/useVimEngine.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/hooks/useVimEngine.ts -------------------------------------------------------------------------------- /src/i18n/config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/config.ts -------------------------------------------------------------------------------- /src/i18n/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/index.ts -------------------------------------------------------------------------------- /src/i18n/locales/en/challenge.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/en/challenge.json -------------------------------------------------------------------------------- /src/i18n/locales/en/common.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/en/common.json -------------------------------------------------------------------------------- /src/i18n/locales/en/example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/en/example.json -------------------------------------------------------------------------------- /src/i18n/locales/en/home.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/en/home.json -------------------------------------------------------------------------------- /src/i18n/locales/en/keyHistory.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/en/keyHistory.json -------------------------------------------------------------------------------- /src/i18n/locales/en/layout.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/en/layout.json -------------------------------------------------------------------------------- /src/i18n/locales/en/lesson.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/en/lesson.json -------------------------------------------------------------------------------- /src/i18n/locales/en/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/en/settings.json -------------------------------------------------------------------------------- /src/i18n/locales/zh-lively/challenge.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh-lively/challenge.json -------------------------------------------------------------------------------- /src/i18n/locales/zh-lively/common.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh-lively/common.json -------------------------------------------------------------------------------- /src/i18n/locales/zh-lively/example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh-lively/example.json -------------------------------------------------------------------------------- /src/i18n/locales/zh-lively/home.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh-lively/home.json -------------------------------------------------------------------------------- /src/i18n/locales/zh-lively/keyHistory.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh-lively/keyHistory.json -------------------------------------------------------------------------------- /src/i18n/locales/zh-lively/layout.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh-lively/layout.json -------------------------------------------------------------------------------- /src/i18n/locales/zh-lively/lesson.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh-lively/lesson.json -------------------------------------------------------------------------------- /src/i18n/locales/zh-lively/lessons.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh-lively/lessons.json -------------------------------------------------------------------------------- /src/i18n/locales/zh-lively/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh-lively/settings.json -------------------------------------------------------------------------------- /src/i18n/locales/zh/challenge.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh/challenge.json -------------------------------------------------------------------------------- /src/i18n/locales/zh/common.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh/common.json -------------------------------------------------------------------------------- /src/i18n/locales/zh/example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh/example.json -------------------------------------------------------------------------------- /src/i18n/locales/zh/home.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh/home.json -------------------------------------------------------------------------------- /src/i18n/locales/zh/keyHistory.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh/keyHistory.json -------------------------------------------------------------------------------- /src/i18n/locales/zh/layout.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh/layout.json -------------------------------------------------------------------------------- /src/i18n/locales/zh/lesson.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh/lesson.json -------------------------------------------------------------------------------- /src/i18n/locales/zh/lessons.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh/lessons.json -------------------------------------------------------------------------------- /src/i18n/locales/zh/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/locales/zh/settings.json -------------------------------------------------------------------------------- /src/i18n/translation-completeness.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/translation-completeness.test.ts -------------------------------------------------------------------------------- /src/i18n/translation-structure.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/i18n/translation-structure.test.ts -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/index.css -------------------------------------------------------------------------------- /src/main.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/main.tsx -------------------------------------------------------------------------------- /src/pages/HomePage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/pages/HomePage.tsx -------------------------------------------------------------------------------- /src/pages/LessonPage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/pages/LessonPage.tsx -------------------------------------------------------------------------------- /src/version.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/src/version.ts -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/tailwind.config.js -------------------------------------------------------------------------------- /tsconfig.app.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/tsconfig.app.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/tsconfig.json -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/tsconfig.node.json -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/vite.config.ts -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jerry-Terrasse/vimprove/HEAD/vitest.config.ts --------------------------------------------------------------------------------