init claude-code
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
import type { Command } from '../../commands.js'
|
||||
|
||||
const command = {
|
||||
name: 'vim',
|
||||
description: 'Toggle between Vim and Normal editing modes',
|
||||
supportsNonInteractive: false,
|
||||
type: 'local',
|
||||
load: () => import('./vim.js'),
|
||||
} satisfies Command
|
||||
|
||||
export default command
|
||||
@@ -0,0 +1,38 @@
|
||||
import {
|
||||
type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
|
||||
logEvent,
|
||||
} from '../../services/analytics/index.js'
|
||||
import type { LocalCommandCall } from '../../types/command.js'
|
||||
import { getGlobalConfig, saveGlobalConfig } from '../../utils/config.js'
|
||||
|
||||
export const call: LocalCommandCall = async () => {
|
||||
const config = getGlobalConfig()
|
||||
let currentMode = config.editorMode || 'normal'
|
||||
|
||||
// Handle backward compatibility - treat 'emacs' as 'normal'
|
||||
if (currentMode === 'emacs') {
|
||||
currentMode = 'normal'
|
||||
}
|
||||
|
||||
const newMode = currentMode === 'normal' ? 'vim' : 'normal'
|
||||
|
||||
saveGlobalConfig(current => ({
|
||||
...current,
|
||||
editorMode: newMode,
|
||||
}))
|
||||
|
||||
logEvent('tengu_editor_mode_changed', {
|
||||
mode: newMode as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
|
||||
source:
|
||||
'command' as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
|
||||
})
|
||||
|
||||
return {
|
||||
type: 'text',
|
||||
value: `Editor mode set to ${newMode}. ${
|
||||
newMode === 'vim'
|
||||
? 'Use Escape key to toggle between INSERT and NORMAL modes.'
|
||||
: 'Using standard (readline) keyboard bindings.'
|
||||
}`,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user