@k2works/claude-code-booster 0.20.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,20 @@
1
+ { packages ? import <nixpkgs> {} }:
2
+ let
3
+ baseShell = import ../../shells/shell.nix { inherit packages; };
4
+ in
5
+ packages.mkShell {
6
+ inherit (baseShell) pure;
7
+ buildInputs = baseShell.buildInputs ++ (with packages; [
8
+ rustc
9
+ cargo
10
+ rustfmt
11
+ clippy
12
+ rust-analyzer
13
+ ]);
14
+ shellHook = ''
15
+ ${baseShell.shellHook}
16
+ echo "Rust development environment activated"
17
+ echo " - rustc: $(rustc --version)"
18
+ echo " - cargo: $(cargo --version)"
19
+ '';
20
+ }
@@ -0,0 +1,21 @@
1
+ { packages ? import <nixpkgs> {} }:
2
+ let
3
+ baseShell = import ../../shells/shell.nix { inherit packages; };
4
+ in
5
+ packages.mkShell {
6
+ inherit (baseShell) pure;
7
+ buildInputs = baseShell.buildInputs ++ (with packages; [
8
+ scala
9
+ sbt
10
+ metals
11
+ scala-cli
12
+ ]);
13
+ shellHook = ''
14
+ ${baseShell.shellHook}
15
+ echo "Scala development environment activated"
16
+ echo " - Scala: $(scala -version 2>&1 | head -n 1)"
17
+ echo " - sbt: $(sbt --version | head -n 1)"
18
+ echo " - Metals: $(metals --version 2>&1 | head -n 1)"
19
+ echo " - Scala CLI: $(scala-cli --version 2>&1 | head -n 1)"
20
+ '';
21
+ }
@@ -0,0 +1,550 @@
1
+ " set encoding=utf-8
2
+ scriptencoding utf-8
3
+ " ↑1行目は読み込み時の文字コードの設定
4
+ " ↑2行目はVim Script内でマルチバイトを使う場合の設定
5
+ " Vim scritptにvimrcも含まれるので、日本語でコメントを書く場合は先頭にこの設定が必要になる
6
+ set autowrite " 自動保存モード
7
+ let mapleader = "," "リーダーキーマップ
8
+ noremap \ ,
9
+
10
+ "----------------------------------------------------------
11
+ " 文字
12
+ "----------------------------------------------------------
13
+ set fileencoding=utf-8 " 保存時の文字コード
14
+ set fileencodings=ucs-boms,utf-8,euc-jp,cp932 " 読み込み時の文字コードの自動判別. 左側が優先される
15
+ set fileformats=unix,dos,mac " 改行コードの自動判別. 左側が優先される
16
+ set ambiwidth=double " □や○文字が崩れる問題を解決
17
+
18
+ "----------------------------------------------------------
19
+ " ステータスライン
20
+ "----------------------------------------------------------
21
+ set laststatus=2 " ステータスラインを常に表示
22
+ set showmode " 現在のモードを表示
23
+ set showcmd " 打ったコマンドをステータスラインの下に表示
24
+ set ruler " ステータスラインの右側にカーソルの位置を表示する
25
+
26
+ "----------------------------------------------------------
27
+ " コマンドモード
28
+ "----------------------------------------------------------
29
+ set wildmenu " コマンドモードの補完
30
+ set history=5000 " 保存するコマンド履歴の数
31
+
32
+ "----------------------------------------------------------
33
+ " タブ・インデント
34
+ "----------------------------------------------------------
35
+ set expandtab " タブ入力を複数の空白入力に置き換える
36
+ set tabstop=2 " 画面上でタブ文字が占める幅
37
+ set softtabstop=2 " 連続した空白に対してタブキーやバックスペースキーでカーソルが動く幅
38
+ set autoindent " 改行時に前の行のインデントを継続する
39
+ set smartindent " 改行時に前の行の構文をチェックし次の行のインデントを増減する
40
+ set shiftwidth=2 " smartindentで増減する幅
41
+
42
+ "----------------------------------------------------------
43
+ " 文字列検索
44
+ "----------------------------------------------------------
45
+ set incsearch " インクリメンタルサーチ. 1文字入力毎に検索を行う
46
+ set ignorecase " 検索パターンに大文字小文字を区別しない
47
+ set smartcase " 検索パターンに大文字を含んでいたら大文字小文字を区別する
48
+ set hlsearch " 検索結果をハイライト
49
+
50
+ " ESCキー2度押しでハイライトの切り替え
51
+ nnoremap <silent><Esc><Esc> :<C-u>set nohlsearch!<CR>
52
+
53
+ "----------------------------------------------------------
54
+ " カーソル
55
+ "----------------------------------------------------------
56
+ set whichwrap=b,s,h,l,<,>,[,],~ " カーソルの左右移動で行末から次の行の行頭への移動が可能になる
57
+ set number " 行番号を表示
58
+ set cursorline " カーソルラインをハイライト
59
+
60
+ " 行が折り返し表示されていた場合、行単位ではなく表示行単位でカーソルを移動する
61
+ nnoremap j gj
62
+ nnoremap k gk
63
+ nnoremap <down> gj
64
+ nnoremap <up> gk
65
+
66
+ " バックスペースキーの有効化
67
+ set backspace=indent,eol,start
68
+
69
+ " 入力モード時のカーソル移動
70
+ noremap! <C-p> <Up>
71
+ noremap! <C-n> <Down>
72
+ noremap! <C-b> <Left>
73
+ noremap! <C-f> <Right>
74
+
75
+ " 入力モードでカーソルの形状を変える
76
+ let &t_ti.="\e[1 q"
77
+ let &t_SI.="\e[5 q"
78
+ let &t_EI.="\e[1 q"
79
+ let &t_te.="\e[0 q"
80
+
81
+ "----------------------------------------------------------
82
+ " バッファリスト
83
+ "----------------------------------------------------------
84
+ nnoremap <silent> [b :bprevious<CR>
85
+ nnoremap <silent> ]b :bnext<CR>
86
+ nnoremap <silent> [B :bfirst<CR>
87
+ nnoremap <silent> ]B :blast<CR>
88
+
89
+ "----------------------------------------------------------
90
+ " カッコ・タグの対応
91
+ "----------------------------------------------------------
92
+ set showmatch " 括弧の対応関係を一瞬表示する
93
+ source $VIMRUNTIME/macros/matchit.vim " Vimの「%」を拡張する
94
+
95
+ "----------------------------------------------------------
96
+ " マウスでカーソル移動とスクロール
97
+ "----------------------------------------------------------
98
+ if has('mouse')
99
+ set mouse=a
100
+ if has('mouse_sgr')
101
+ set ttymouse=sgr
102
+ elseif v:version > 703 || v:version is 703 && has('patch632')
103
+ "set ttymouse=sgr
104
+ else
105
+ set ttymouse=xterm2
106
+ endif
107
+ endif
108
+
109
+ "----------------------------------------------------------
110
+ " クリップボードからのペースト
111
+ "----------------------------------------------------------
112
+ " 挿入モードでクリップボードからペーストする時に自動でインデントさせないようにする
113
+ if &term =~ "xterm"
114
+ let &t_SI .= "\e[?2004h"
115
+ let &t_EI .= "\e[?2004l"
116
+ let &pastetoggle = "\e[201~"
117
+
118
+ function XTermPasteBegin(ret)
119
+ set paste
120
+ return a:ret
121
+ endfunction
122
+
123
+ inoremap <special> <expr> <Esc>[200~ XTermPasteBegin("")
124
+ endif
125
+
126
+ "----------------------------------------------------------
127
+ " ファイル保存
128
+ "----------------------------------------------------------
129
+ nnoremap <C-s> :w<CR>
130
+ inoremap <C-s> <ESC>:w<CR>
131
+
132
+ "----------------------------------------------------------
133
+ " パッケージマネージャ
134
+ "----------------------------------------------------------
135
+ let $CACHE = expand('~/.cache')
136
+ if !isdirectory($CACHE)
137
+ call mkdir($CACHE, 'p')
138
+ endif
139
+ if &runtimepath !~# '/dein.vim'
140
+ let s:dein_dir = fnamemodify('dein.vim', ':p')
141
+ if !isdirectory(s:dein_dir)
142
+ let s:dein_dir = $CACHE .. '/dein/repos/github.com/Shougo/dein.vim'
143
+ if !isdirectory(s:dein_dir)
144
+ execute '!git clone https://github.com/Shougo/dein.vim' s:dein_dir
145
+ endif
146
+ endif
147
+ execute 'set runtimepath^=' .. substitute(
148
+ \ fnamemodify(s:dein_dir, ':p') , '[/\\]$', '', '')
149
+ endif
150
+
151
+ if &compatible
152
+ set nocompatible
153
+ endif
154
+
155
+ let s:dein_dir = expand('~/.cache/dein')
156
+ let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim'
157
+
158
+ " dein.vimが存在していない場合はgithubからclone
159
+ if &runtimepath !~# '/dein.vim'
160
+ if !isdirectory(s:dein_repo_dir)
161
+ execute '!git clone https://github.com/Shougo/dein.vim' s:dein_repo_dir
162
+ endif
163
+ execute 'set runtimepath^=' . fnamemodify(s:dein_repo_dir, ':p')
164
+ endif
165
+
166
+ if dein#load_state(s:dein_dir)
167
+ call dein#begin(s:dein_dir)
168
+
169
+ call dein#add('Shougo/dein.vim')
170
+
171
+ " カラースキーム
172
+ call dein#add('tomasr/molokai')
173
+ call dein#add('raphamorim/lucario')
174
+ call dein#add('jacoborus/tender.vim')
175
+ " ステータスライン表示
176
+ call dein#add('vim-airline/vim-airline')
177
+ call dein#add('vim-airline/vim-airline-themes')
178
+ call dein#add('itchyny/lightline.vim')
179
+ " インデントの可視化
180
+ call dein#add('Yggdroot/indentLine')
181
+ " 末尾の全角半角空白文字を赤くハイライト
182
+ call dein#add('bronson/vim-trailing-whitespace')
183
+ " 構文エラーチェック
184
+ call dein#add('scrooloose/syntastic')
185
+ " 多機能セレクタ
186
+ call dein#add('ctrlpvim/ctrlp.vim')
187
+ call dein#add('tacahiroy/ctrlp-funky')
188
+ call dein#add('suy/vim-ctrlp-commandline')
189
+ call dein#add('rking/ag.vim')
190
+ call dein#add('mattn/ctrlp-matchfuzzy')
191
+ " 開発
192
+ call dein#add('airblade/vim-gitgutter')
193
+ call dein#add('tpope/vim-fugitive')
194
+ call dein#add('neoclide/coc.nvim', {'merged': 0, 'rev': 'release'})
195
+ call dein#add('fatih/vim-go')
196
+ call dein#add('AndrewRadev/splitjoin.vim')
197
+ call dein#add('puremourning/vimspector')
198
+ call dein#add('vim-test/vim-test')
199
+ call dein#add('tpope/vim-dispatch')
200
+ call dein#add('github/copilot.vim')
201
+ call dein#add('rust-lang/rust.vim')
202
+ call dein#add('OmniSharp/omnisharp-vim')
203
+ call dein#add('OrangeT/vim-csharp')
204
+ call dein#add('uiiaoo/java-syntax.vim')
205
+ call dein#add('neovimhaskell/haskell-vim')
206
+ call dein#add('vim-ruby/vim-ruby')
207
+ call dein#add('stanangeloff/php.vim')
208
+ call dein#add('phpactor/phpactor', {'type': 'lua', 'on_ft': 'php'})
209
+ call dein#add('Olical/conjure')
210
+ call dein#add('clojure-vim/clojure.vim')
211
+ call dein#add('tpope/vim-fireplace', {'on_ft': 'clojure'})
212
+ call dein#add('elixir-editors/vim-elixir')
213
+ call dein#add('derekwyatt/vim-scala')
214
+
215
+ call dein#end()
216
+ call dein#save_state()
217
+ endif
218
+
219
+ filetype plugin indent on
220
+ syntax enable
221
+
222
+ " If you want to install not installed plugins on startup.
223
+ if dein#check_install()
224
+ call dein#install()
225
+ endif
226
+ "----------------------------------------------------------
227
+ " カラースキーム
228
+ "----------------------------------------------------------
229
+ colorscheme lucario " カラースキームにlucarioを設定する
230
+ set t_Co=256 " iTerm2など既に256色環境なら無くても良い
231
+ syntax enable " 構文に色を付ける
232
+
233
+ "----------------------------------------------------------
234
+ " ステータスライン表示
235
+ "----------------------------------------------------------
236
+ set showtabline=2
237
+ let g:airline_powerline_fonts = 1
238
+ let g:airline_theme = 'luna'
239
+ let g:airline#extensions#tabline#enabled = 1
240
+ let g:airline#extensions#tabline#buffer_idx_mode = 1
241
+
242
+ "----------------------------------------------------------
243
+ " 構文エラーチェック
244
+ "----------------------------------------------------------
245
+ " 構文エラー行に「>>」を表示
246
+ let g:syntastic_enable_signs = 1
247
+ " 他のVimプラグインと競合するのを防ぐ
248
+ let g:syntastic_always_populate_loc_list = 1
249
+ " 構文エラーリストを非表示
250
+ let g:syntastic_auto_loc_list = 0
251
+ " ファイルを開いた時に構文エラーチェックを実行する
252
+ let g:syntastic_check_on_open = 1
253
+ " 「:wq」で終了する時も構文エラーチェックする
254
+ let g:syntastic_check_on_wq = 1
255
+
256
+ " Javascript用. 構文エラーチェックにESLintを使用
257
+ let g:syntastic_javascript_checkers=['eslint']
258
+ " Javascript以外は構文エラーチェックをしない
259
+ let g:syntastic_mode_map = { 'mode': 'passive',
260
+ \ 'active_filetypes': ['javascript'],
261
+ \ 'passive_filetypes': [] }
262
+
263
+ "----------------------------------------------------------
264
+ " 多機能セレクタ
265
+ "----------------------------------------------------------
266
+ let g:ctrlp_match_window = 'order:ttb,min:20,max:20,results:100' " マッチウインドウの設定. 「下部に表示, 大きさ20行で固定, 検索結果100件」
267
+ let g:ctrlp_show_hidden = 1 " .(ドット)から始まるファイルも検索対象にする
268
+ let g:ctrlp_types = ['fil'] "ファイル検索のみ使用
269
+ let g:ctrlp_extensions = ['funky', 'commandline'] " CtrlPの拡張として「funky」と「commandline」を使用
270
+
271
+ " CtrlPCommandLineの有効化
272
+ command! CtrlPCommandLine call ctrlp#init(ctrlp#commandline#id())
273
+
274
+ " CtrlPFunkyの絞り込み検索設定
275
+ let g:ctrlp_funky_matchtype = 'path'
276
+
277
+ if executable('ag')
278
+ let g:ctrlp_use_caching=0 " CtrlPのキャッシュを使わない
279
+ let g:ctrlp_user_command='ag %s -i --hidden -g ""' " 「ag」の検索設定
280
+ endif
281
+
282
+ "----------------------------------------------------------
283
+ " 開発
284
+ "----------------------------------------------------------
285
+ "vim-fugitive
286
+ nnoremap <leader>ga :Git add %:p<CR><CR>
287
+ nnoremap <leader>gc :Git commit<CR><CR>
288
+ nnoremap <leader>gs :Git<CR>
289
+ nnoremap <leader>gp :Git push<CR>
290
+ nnoremap <leader>gd :Gdiffsplit<CR>
291
+ nnoremap <leader>gl :Gclog<CR>
292
+ nnoremap <leader>gb :Git blame<CR>
293
+
294
+ "coc-nvim
295
+ " May need for Vim (not Neovim) since coc.nvim calculates byte offset by count
296
+ " utf-8 byte sequence
297
+ set encoding=utf-8
298
+ " Some servers have issues with backup files, see #649
299
+ set nobackup
300
+ set nowritebackup
301
+
302
+ " Having longer updatetime (default is 4000 ms = 4s) leads to noticeable
303
+ " delays and poor user experience
304
+ set updatetime=300
305
+
306
+ " Always show the signcolumn, otherwise it would shift the text each time
307
+ " diagnostics appear/become resolved
308
+ set signcolumn=yes
309
+
310
+ " Use tab for trigger completion with characters ahead and navigate
311
+ " NOTE: There's always complete item selected by default, you may want to enable
312
+ " no select by `"suggest.noselect": true` in your configuration file
313
+ " NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by
314
+ " other plugin before putting this into your config
315
+ inoremap <silent><expr> <TAB>
316
+ \ coc#pum#visible() ? coc#pum#next(1) :
317
+ \ CheckBackspace() ? "\<Tab>" :
318
+ \ coc#refresh()
319
+ inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
320
+
321
+ " Make <CR> to accept selected completion item or notify coc.nvim to format
322
+ " <C-g>u breaks current undo, please make your own choice
323
+ inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm()
324
+ \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
325
+
326
+ function! CheckBackspace() abort
327
+ let col = col('.') - 1
328
+ return !col || getline('.')[col - 1] =~# '\s'
329
+ endfunction
330
+
331
+ " Use <c-space> to trigger completion
332
+ if has('nvim')
333
+ inoremap <silent><expr> <c-space> coc#refresh()
334
+ else
335
+ inoremap <silent><expr> <c-@> coc#refresh()
336
+ endif
337
+
338
+ " Use `[g` and `]g` to navigate diagnostics
339
+ " Use `:CocDiagnostics` to get all diagnostics of current buffer in location list
340
+ nmap <silent> [g <Plug>(coc-diagnostic-prev)
341
+ nmap <silent> ]g <Plug>(coc-diagnostic-next)
342
+
343
+ " GoTo code navigation
344
+ nmap <silent> gd <Plug>(coc-definition)
345
+ nmap <silent> gy <Plug>(coc-type-definition)
346
+ nmap <silent> gi <Plug>(coc-implementation)
347
+ nmap <silent> gr <Plug>(coc-references)
348
+
349
+ " Use K to show documentation in preview window
350
+ nnoremap <silent> K :call ShowDocumentation()<CR>
351
+
352
+ function! ShowDocumentation()
353
+ if CocAction('hasProvider', 'hover')
354
+ call CocActionAsync('doHover')
355
+ else
356
+ call feedkeys('K', 'in')
357
+ endif
358
+ endfunction
359
+
360
+ " Highlight the symbol and its references when holding the cursor
361
+ autocmd CursorHold * silent call CocActionAsync('highlight')
362
+
363
+ " Symbol renaming
364
+ nmap <leader>rn <Plug>(coc-rename)
365
+
366
+ " Formatting selected code
367
+ xmap <leader>f <Plug>(coc-format-selected)
368
+ nmap <leader>f <Plug>(coc-format-selected)
369
+
370
+ augroup mygroup
371
+ autocmd!
372
+ " Setup formatexpr specified filetype(s)
373
+ autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
374
+ " Update signature help on jump placeholder
375
+ autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
376
+ augroup end
377
+
378
+ " Applying code actions to the selected code block
379
+ " Example: `<leader>aap` for current paragraph
380
+ xmap <leader>a <Plug>(coc-codeaction-selected)
381
+ nmap <leader>a <Plug>(coc-codeaction-selected)
382
+
383
+ " Remap keys for applying code actions at the cursor position
384
+ nmap <leader>ac <Plug>(coc-codeaction-cursor)
385
+ " Remap keys for apply code actions affect whole buffer
386
+ nmap <leader>as <Plug>(coc-codeaction-source)
387
+ " Apply the most preferred quickfix action to fix diagnostic on the current line
388
+ nmap <leader>qf <Plug>(coc-fix-current)
389
+
390
+ " Remap keys for applying refactor code actions
391
+ nmap <silent> <leader>re <Plug>(coc-codeaction-refactor)
392
+ xmap <silent> <leader>r <Plug>(coc-codeaction-refactor-selected)
393
+ nmap <silent> <leader>r <Plug>(coc-codeaction-refactor-selected)
394
+
395
+ " Run the Code Lens action on the current line
396
+ nmap <leader>cl <Plug>(coc-codelens-action)
397
+
398
+ " Map function and class text objects
399
+ " NOTE: Requires 'textDocument.documentSymbol' support from the language server
400
+ xmap if <Plug>(coc-funcobj-i)
401
+ omap if <Plug>(coc-funcobj-i)
402
+ xmap af <Plug>(coc-funcobj-a)
403
+ omap af <Plug>(coc-funcobj-a)
404
+ xmap ic <Plug>(coc-classobj-i)
405
+ omap ic <Plug>(coc-classobj-i)
406
+ xmap ac <Plug>(coc-classobj-a)
407
+ omap ac <Plug>(coc-classobj-a)
408
+
409
+ " Remap <C-f> and <C-b> to scroll float windows/popups
410
+ if has('nvim-0.4.0') || has('patch-8.2.0750')
411
+ nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
412
+ nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
413
+ inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
414
+ inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
415
+ vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
416
+ vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
417
+ endif
418
+
419
+ " Use CTRL-R for selections ranges
420
+ " Requires 'textDocument/selectionRange' support of language server
421
+ nmap <silent> <C-r> <Plug>(coc-range-select)
422
+ xmap <silent> <C-r> <Plug>(coc-range-select)
423
+
424
+ " Add `:Format` command to format current buffer
425
+ command! -nargs=0 Format :call CocActionAsync('format')
426
+
427
+ " Add `:Fold` command to fold current buffer
428
+ command! -nargs=? Fold :call CocAction('fold', <f-args>)
429
+
430
+ " Add `:OR` command for organize imports of the current buffer
431
+ command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport')
432
+
433
+ " Add (Neo)Vim's native statusline support
434
+ " NOTE: Please see `:h coc-status` for integrations with external plugins that
435
+ " provide custom statusline: lightline.vim, vim-airline
436
+ set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
437
+
438
+ " Mappings for CoCList
439
+ " Show all diagnostics
440
+ nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr>
441
+ " Manage extensions
442
+ nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr>
443
+ " Show commands
444
+ nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr>
445
+ " Find symbol of current document
446
+ nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr>
447
+ " Search workspace symbols
448
+ nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr>
449
+ " Do default action for next item
450
+ nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR>
451
+ " Do default action for previous item
452
+ nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR>
453
+ " Resume latest coc list
454
+ nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR>
455
+
456
+ "vim-go
457
+ map <C-n> :cnext<CR>
458
+ map <C-m> :cprevious<CR>
459
+
460
+ nnoremap <leader>a :cclose<CR>
461
+ function! s:build_go_files()
462
+ let l:file = expand('%')
463
+ if l:file =~# '^\f\+_test\.go$'
464
+ call go#test#Test(0, 1)
465
+ elseif l:file =~# '^\f\+\.go$'
466
+ call go#cmd#Build(0)
467
+ endif
468
+ endfunction
469
+ autocmd FileType go nmap <leader>b :<C-u>call <SID>build_go_files()<CR>
470
+ autocmd FileType go nmap <leader>r <Plug>(go-run)
471
+ let g:go_list_type = "quickfix"
472
+
473
+ autocmd FileType go nmap <leader>t <Plug>(go-test)
474
+ autocmd FileType go nmap <leader>T <Plug>(go-test-func)
475
+ autocmd FileType go nmap <Leader>c <Plug>(go-coverage-toggle)
476
+
477
+ let g:go_highlight_types = 1
478
+ let g:go_highlight_fields = 1
479
+ let g:go_highlight_functions = 1
480
+ let g:go_highlight_function_calls = 1
481
+
482
+ autocmd Filetype go command! -bang A call go#alternate#Switch(<bang>0, 'edit')
483
+ autocmd Filetype go command! -bang AV call go#alternate#Switch(<bang>0, 'vsplit')
484
+ autocmd Filetype go command! -bang AS call go#alternate#Switch(<bang>0, 'split')
485
+ autocmd Filetype go command! -bang AT call go#alternate#Switch(<bang>0, 'tabe')
486
+
487
+ let g:go_def_mode = 'godef'
488
+ let g:go_decls_includes = "func,type"
489
+ let g:go_auto_sameids = 1
490
+
491
+ let g:go_debug_windows = {
492
+ \ 'vars': '60vnew',
493
+ \ 'stack': '10new',
494
+ \ }
495
+
496
+ "vimspector
497
+ nnoremap <Leader>dd :call vimspector#Launch()<CR>
498
+ nnoremap <Leader>de :call vimspector#Reset()<CR>
499
+ nnoremap <Leader>dc :call vimspector#Continue()<CR>
500
+
501
+ nnoremap <Leader>dt :call vimspector#ToggleBreakpoint()<CR>
502
+ nnoremap <Leader>dT :call vimspector#ClearBreakpoints()<CR>
503
+
504
+ nmap <Leader>dk <Plug>VimspectorRestart
505
+ nmap <Leader>dh <Plug>VimspectorStepOut
506
+ nmap <Leader>dl <Plug>VimspectorStepInto
507
+ nmap <Leader>dj <Plug>VimspectorStepOver
508
+
509
+ "vim-test
510
+ nmap <silent> <leader>t :TestNearest<CR>
511
+ nmap <silent> <leader>T :TestFile<CR>
512
+ nmap <silent> <leader>a :TestSuite<CR>
513
+ nmap <silent> <leader>l :TestLast<CR>
514
+ nmap <silent> <leader>g :TestVisit<CR>
515
+ let g:test#strategy = 'dispatch'
516
+
517
+ "----------------------------------------------------------
518
+ " 言語別設定
519
+ "----------------------------------------------------------
520
+ " Rust
521
+ let g:rustfmt_autosave = 1
522
+
523
+ " .NET (OmniSharp)
524
+ let g:OmniSharp_server_use_mono = 0
525
+ let g:OmniSharp_selector_ui = 'ctrlp'
526
+ let g:OmniSharp_highlight_types = 3
527
+
528
+ " Java
529
+ " uiiaoo/java-syntax.vim はデフォルトで有効
530
+
531
+ " Haskell
532
+ let g:haskell_enable_quantification = 1 " enable highlighting of `forall`
533
+ let g:haskell_enable_recursivedo = 1 " enable highlighting of `mdo` and `rec`
534
+ let g:haskell_enable_arrowsyntax = 1 " enable highlighting of `proc`
535
+ let g:haskell_enable_pattern_synonyms = 1 " enable highlighting of `pattern`
536
+ let g:haskell_enable_typeroles = 1 " enable highlighting of type roles
537
+ let g:haskell_enable_static_pointers = 1 " enable highlighting of `static`
538
+ let g:haskell_backpack = 1 " enable highlighting of backpack keywords
539
+
540
+ " Ruby
541
+ autocmd FileType ruby setlocal expandtab shiftwidth=2 tabstop=2
542
+
543
+ " PHP
544
+ autocmd FileType php setlocal expandtab shiftwidth=4 tabstop=4
545
+
546
+ " Elixir
547
+ autocmd FileType elixir setlocal expandtab shiftwidth=2 tabstop=2
548
+
549
+ " Scala
550
+ autocmd FileType scala setlocal expandtab shiftwidth=2 tabstop=2
@@ -1,21 +1,34 @@
1
- { packages ? import <nixpkgs> {} }:
2
- packages.mkShell {
3
- buildInputs = with packages; [
4
- git
5
- curl
6
- wget
7
- vim
8
- tmux
9
- zip
10
- unzip
11
- ];
12
- # ホスト環境から完全に分離する
13
- pure = true;
14
- shellHook = ''
15
- # Git safe.directory 設定(コンテナ環境対応)
16
- git config --global --add safe.directory /srv 2>/dev/null || true
17
- git config --global --add safe.directory "$(pwd)" 2>/dev/null || true
18
-
19
- echo "Welcome to the common development environment"
20
- '';
21
- }
1
+ { packages ? import <nixpkgs> {} }:
2
+ packages.mkShell {
3
+ buildInputs = with packages; [
4
+ git
5
+ curl
6
+ wget
7
+ vim-full
8
+ python3
9
+ tmux
10
+ zip
11
+ unzip
12
+ nodejs_22
13
+ gh
14
+ ];
15
+ # ホスト環境から完全に分離する
16
+ pure = true;
17
+ shellHook = ''
18
+ # Git safe.directory 設定(コンテナ環境対応)
19
+ git config --global --add safe.directory /srv 2>/dev/null || true
20
+ git config --global --add safe.directory "$(pwd)" 2>/dev/null || true
21
+
22
+ # Vim 設定の反映
23
+ VIMRC_SRC="${./.vimrc}"
24
+ VIMRC_DEST="$HOME/.vimrc"
25
+ if [ -f "$VIMRC_SRC" ]; then
26
+ ln -sf "$VIMRC_SRC" "$VIMRC_DEST"
27
+ # Ensure dein.vim is installed and plugins are up to date
28
+ # coc.nvim 'release' branch contains pre-built index.js
29
+ echo "Linked $VIMRC_SRC to $VIMRC_DEST"
30
+ fi
31
+
32
+ echo "Welcome to the common development environment"
33
+ '';
34
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k2works/claude-code-booster",
3
- "version": "0.20.0",
3
+ "version": "0.21.0",
4
4
  "description": "AI Agent Development Support Tool",
5
5
  "main": "main.js",
6
6
  "bin": {