Skip to content

Commit c431a43

Browse files
committed
Merge branch 'dev'
2 parents c7c6978 + cc65f99 commit c431a43

21 files changed

Lines changed: 209 additions & 423 deletions

File tree

‎jest.config.js‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
module.exports = {
2+
preset: 'ts-jest',
3+
testEnvironment: 'node',
4+
testMatch: ['<rootDir>/packages/**/*.spec.ts'],
5+
testPathIgnorePatterns: ['/node_modules/', '/out/', '/dist/'],
6+
moduleNameMapper: {
7+
'^@shared/(.*)$': '<rootDir>/packages/shared/src/$1',
8+
'^@/(.*)$': '<rootDir>/packages/vscode/src/$1',
9+
},
10+
};

‎package.json‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,17 @@
33
"description": "Monorepo containing editor and browser extensions",
44
"packageManager": "pnpm@10.10.0+sha512.d615db246fe70f25dcfea6d8d73dee782ce23e2245e3c4f6f888249fb568149318637dca73c2c5c8ef2a4ca0d5657fb9567188bfab47f566d1ee6ce987815c39",
55
"devDependencies": {
6+
"@types/jest": "^29.5.14",
67
"husky": "^9.1.7",
7-
"lint-staged": "^15.2.10"
8+
"jest": "^29.7.0",
9+
"lint-staged": "^15.2.10",
10+
"ts-jest": "^29.4.0",
11+
"typescript": "^5.8.3"
812
},
913
"scripts": {
10-
"prepare": "husky"
14+
"prepare": "husky",
15+
"test": "jest",
16+
"test:watch": "jest --watch"
1117
},
1218
"lint-staged": {
1319
"*.{ts,tsx,json,css,scss,md}": [

‎packages/shared/package.json‎

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,7 @@
44
"private": true,
55
"description": "Shared utilities for CWC",
66
"scripts": {
7-
"test": "jest"
8-
},
9-
"devDependencies": {
10-
"@types/jest": "^29.5.14",
11-
"jest": "^29.7.0",
12-
"ts-jest": "^29.3.1",
13-
"typescript": "^5.8.2"
7+
"test": "jest",
8+
"test:watch": "jest --watch"
149
}
1510
}

‎packages/shared/src/utils/search-paths/search-paths.spec.ts‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,21 @@ describe('search_paths', () => {
3737
expect(result[0]).toBe('src/routes/HomePage.tsx')
3838
})
3939

40+
it('should not find "src/routes/HomePage.tsx" with query "pagesrc"', () => {
41+
const result = search_paths({ paths, search_value: 'pagesrc' })
42+
expect(result).toHaveLength(0)
43+
})
44+
45+
it('should not find "src/routes/HomePage.tsx" with query "page."', () => {
46+
const result = search_paths({ paths, search_value: 'page.' })
47+
expect(result).toHaveLength(0)
48+
})
49+
50+
it('should not find "src/routes/HomePage.tsx" with query "src/"', () => {
51+
const result = search_paths({ paths, search_value: 'src/' })
52+
expect(result).toHaveLength(0)
53+
})
54+
4055
it('should not find "src/routes/HomePage.tsx" with query "srcagetsx"', () => {
4156
const result = search_paths({ paths, search_value: 'srcagetsx' })
4257
expect(result).toHaveLength(0)

‎packages/shared/src/utils/search-paths/search-paths.ts‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const is_prefix_match_recursive = (params: {
1717
part_idx: number
1818
memo: Record<string, boolean>
1919
}): boolean => {
20-
const key = `${params.part_idx}:${params.query.length}`
20+
const key = `${params.part_idx}:${params.query}`
2121
if (params.memo[key] !== undefined) {
2222
return params.memo[key]
2323
}
@@ -72,6 +72,9 @@ export const search_paths = (params: {
7272
if (!params.search_value) {
7373
return params.paths
7474
}
75+
if (/[/\\\.]$/.test(params.search_value)) {
76+
return []
77+
}
7578
return params.paths.filter((path_item) => {
7679
const search_lower = params.search_value.toLowerCase()
7780
const path_to_search_lower = path_item.toLowerCase()

‎packages/ui/src/components/editor/panel/Dropdown/Dropdown.module.scss‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
.button {
66
display: flex;
77
align-items: center;
8-
gap: var(--padding-4px);
8+
gap: var(--padding-2px);
99
padding: 0 var(--padding-5px) 0 var(--padding-7px);
1010
height: 24px;
1111
border: 1px solid var(--cwc-border-color-dimmed);

‎packages/ui/src/components/editor/panel/Dropdown/Dropdown.stories.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export const WithInfo = () => {
3636
options={options}
3737
selected_value={selected}
3838
on_change={set_selected}
39-
info="shift+tab"
39+
info="mode"
4040
/>
4141
</div>
4242
)

‎packages/ui/src/components/editor/panel/Dropdown/Dropdown.tsx‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,6 @@ export const Dropdown = <T extends string>(props: Dropdown.Props<T>) => {
4141
set_just_opened(false)
4242
}
4343

44-
const handle_mouse_enter = () => {
45-
set_just_opened(false)
46-
}
47-
4844
const handle_wheel = (event: React.WheelEvent<HTMLDivElement>) => {
4945
event.preventDefault()
5046
event.stopPropagation()
@@ -120,7 +116,6 @@ export const Dropdown = <T extends string>(props: Dropdown.Props<T>) => {
120116

121117
{is_open && (
122118
<DropdownMenu
123-
on_mouse_enter={handle_mouse_enter}
124119
items={props.options.map((option) => ({
125120
label: option.label,
126121
on_click: () => handle_select(option.value),

‎packages/ui/src/components/editor/panel/IconButton/IconButton.module.scss‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
}
1616

1717
&:hover {
18-
color: inherit;
1918
background-color: var(--vscode-toolbar-hoverBackground);
2019
text-decoration: none;
2120
}

‎packages/ui/src/components/editor/panel/Presets/Presets.tsx‎

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -459,14 +459,17 @@ export const Presets: React.FC<Presets.Props> = (props) => {
459459
props.selected_preset_name == 'Ungrouped'
460460
})}
461461
onClick={() => {
462-
props.on_group_click('Ungrouped')
462+
props.on_create_group({
463+
add_on_top: true,
464+
instant: true
465+
})
463466
}}
464-
onContextMenu={(e) =>
467+
onContextMenu={(e) => {
465468
handle_item_context_menu(e, {
466469
preset_name: 'Ungrouped',
467470
is_group: true
468471
})
469-
}
472+
}}
470473
role="button"
471474
>
472475
<div className={styles.presets__item__left}>
@@ -482,12 +485,6 @@ export const Presets: React.FC<Presets.Props> = (props) => {
482485
className={
483486
styles['presets__item__left__collapse-icon']
484487
}
485-
onClick={() => {
486-
props.on_create_group({
487-
add_on_top: true,
488-
instant: true
489-
})
490-
}}
491488
>
492489
<span
493490
className={cn('codicon', {
@@ -505,6 +502,14 @@ export const Presets: React.FC<Presets.Props> = (props) => {
505502
e.stopPropagation()
506503
}}
507504
>
505+
<IconButton
506+
codicon_icon="run-coverage"
507+
title="Run"
508+
on_click={(e) => {
509+
e.stopPropagation()
510+
props.on_group_click('Ungrouped')
511+
}}
512+
/>
508513
<IconButton
509514
codicon_icon="edit"
510515
title="Edit"
@@ -526,6 +531,8 @@ export const Presets: React.FC<Presets.Props> = (props) => {
526531
styles.presets__item,
527532
styles['presets__item--ungrouped']
528533
)}
534+
onClick={() => props.on_create_group({ instant: true })}
535+
role="button"
529536
>
530537
<div className={styles.presets__item__left}>
531538
<div
@@ -540,10 +547,6 @@ export const Presets: React.FC<Presets.Props> = (props) => {
540547
className={
541548
styles['presets__item__left__collapse-icon']
542549
}
543-
onClick={() =>
544-
props.on_create_group({ instant: true })
545-
}
546-
role="button"
547550
>
548551
<span
549552
className={cn('codicon', {
@@ -561,6 +564,14 @@ export const Presets: React.FC<Presets.Props> = (props) => {
561564
e.stopPropagation()
562565
}}
563566
>
567+
<IconButton
568+
codicon_icon="run-coverage"
569+
title="Run"
570+
on_click={(e) => {
571+
e.stopPropagation()
572+
props.on_group_click('Ungrouped')
573+
}}
574+
/>
564575
<IconButton
565576
codicon_icon="edit"
566577
title="Edit"
@@ -620,7 +631,7 @@ export const Presets: React.FC<Presets.Props> = (props) => {
620631
if (preset.chatbot) {
621632
props.on_preset_click(preset.name)
622633
} else {
623-
props.on_group_click(preset.name)
634+
props.on_toggle_group_collapsed(preset.name)
624635
}
625636
}}
626637
onContextMenu={(e) =>
@@ -665,11 +676,6 @@ export const Presets: React.FC<Presets.Props> = (props) => {
665676
styles['presets__item__left__collapse-icon']
666677
}
667678
style={{ cursor: 'pointer' }}
668-
title={preset.is_collapsed ? 'Expand' : 'Collapse'}
669-
onClick={(e) => {
670-
e.stopPropagation()
671-
props.on_toggle_group_collapsed(preset.name)
672-
}}
673679
>
674680
<span
675681
className={cn('codicon', {
@@ -691,6 +697,16 @@ export const Presets: React.FC<Presets.Props> = (props) => {
691697
e.stopPropagation()
692698
}}
693699
>
700+
{!preset.chatbot && (
701+
<IconButton
702+
codicon_icon="run-coverage"
703+
title="Run"
704+
on_click={(e) => {
705+
e.stopPropagation()
706+
props.on_group_click(preset.name)
707+
}}
708+
/>
709+
)}
694710
{preset.chatbot &&
695711
(preset.prompt_prefix || preset.prompt_suffix) && (
696712
<IconButton

0 commit comments

Comments
 (0)