Skip to content

Commit e05ba43

Browse files
authored
feat: prototype chat interface (#155)
1 parent 654758d commit e05ba43

13 files changed

+416
-139
lines changed

.prettierignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Ignore everything:
22
/*
33

4-
# Except src:
4+
# Except src and media:
55
!/src
6+
!/media

media/chat.css

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
.user-message {
2+
font-size: var(--vscode-editor-font-size);
3+
font-family: var(--vscode-editor-font-family);
4+
background-color: var(--vscode-input-background);
5+
}
6+
7+
.assistant-message {
8+
font-size: var(--vscode-editor-font-size);
9+
font-family: var(--vscode-editor-font-family);
10+
background-color: var(--vscode-editor-background);
11+
}

media/main.css

-12
This file was deleted.

media/main.js

-65
This file was deleted.

media/reset.css

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
html {
2-
box-sizing: border-box;
3-
font-size: 13px;
2+
box-sizing: border-box;
3+
font-size: 13px;
44
}
55

66
*,
77
*:before,
88
*:after {
9-
box-sizing: inherit;
9+
box-sizing: inherit;
1010
}
1111

1212
body,
@@ -19,12 +19,12 @@ h6,
1919
p,
2020
ol,
2121
ul {
22-
margin: 0;
23-
padding: 0;
24-
font-weight: normal;
22+
margin: 0;
23+
padding: 0;
24+
font-weight: normal;
2525
}
2626

2727
img {
28-
max-width: 100%;
29-
height: auto;
28+
max-width: 100%;
29+
height: auto;
3030
}

media/search.css

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
body {
2+
background-color: transparent;
3+
}
4+
5+
.hidden {
6+
display: none;
7+
}
8+
9+
textarea {
10+
font-size: var(--vscode-editor-font-size);
11+
font-family: var(--vscode-editor-font-family);
12+
}

media/vscode.css

+43-43
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,91 @@
11
:root {
2-
--container-paddding: 20px;
3-
--input-padding-vertical: 6px;
4-
--input-padding-horizontal: 4px;
5-
--input-margin-vertical: 4px;
6-
--input-margin-horizontal: 0;
2+
--container-paddding: 20px;
3+
--input-padding-vertical: 6px;
4+
--input-padding-horizontal: 4px;
5+
--input-margin-vertical: 4px;
6+
--input-margin-horizontal: 0;
77
}
88

99
body {
10-
padding: 0 var(--container-paddding);
11-
color: var(--vscode-foreground);
12-
font-size: var(--vscode-font-size);
13-
font-weight: var(--vscode-font-weight);
14-
font-family: var(--vscode-font-family);
15-
background-color: var(--vscode-editor-background);
10+
padding: 0 var(--container-paddding);
11+
color: var(--vscode-foreground);
12+
font-size: var(--vscode-font-size);
13+
font-weight: var(--vscode-font-weight);
14+
font-family: var(--vscode-font-family);
15+
background-color: var(--vscode-editor-background);
1616
}
1717

1818
ol,
1919
ul {
20-
padding-left: var(--container-paddding);
20+
padding-left: var(--container-paddding);
2121
}
2222

2323
body > *,
2424
form > * {
25-
margin-block-start: var(--input-margin-vertical);
26-
margin-block-end: var(--input-margin-vertical);
25+
margin-block-start: var(--input-margin-vertical);
26+
margin-block-end: var(--input-margin-vertical);
2727
}
2828

2929
*:focus {
30-
outline-color: var(--vscode-focusBorder) !important;
30+
outline-color: var(--vscode-focusBorder) !important;
3131
}
3232

3333
a {
34-
color: var(--vscode-textLink-foreground);
34+
color: var(--vscode-textLink-foreground);
3535
}
3636

3737
a:hover,
3838
a:active {
39-
color: var(--vscode-textLink-activeForeground);
39+
color: var(--vscode-textLink-activeForeground);
4040
}
4141

4242
code {
43-
font-size: var(--vscode-editor-font-size);
44-
font-family: var(--vscode-editor-font-family);
43+
font-size: var(--vscode-editor-font-size);
44+
font-family: var(--vscode-editor-font-family);
4545
}
4646

4747
button {
48-
border: none;
49-
padding: var(--input-padding-vertical) var(--input-padding-horizontal);
50-
width: 100%;
51-
text-align: center;
52-
outline: 1px solid transparent;
53-
outline-offset: 2px !important;
54-
color: var(--vscode-button-foreground);
55-
background: var(--vscode-button-background);
48+
border: none;
49+
padding: var(--input-padding-vertical) var(--input-padding-horizontal);
50+
width: 100%;
51+
text-align: center;
52+
outline: 1px solid transparent;
53+
outline-offset: 2px !important;
54+
color: var(--vscode-button-foreground);
55+
background: var(--vscode-button-background);
5656
}
5757

5858
button:hover {
59-
cursor: pointer;
60-
background: var(--vscode-button-hoverBackground);
59+
cursor: pointer;
60+
background: var(--vscode-button-hoverBackground);
6161
}
6262

6363
button:focus {
64-
outline-color: var(--vscode-focusBorder);
64+
outline-color: var(--vscode-focusBorder);
6565
}
6666

6767
button.secondary {
68-
color: var(--vscode-button-secondaryForeground);
69-
background: var(--vscode-button-secondaryBackground);
68+
color: var(--vscode-button-secondaryForeground);
69+
background: var(--vscode-button-secondaryBackground);
7070
}
7171

7272
button.secondary:hover {
73-
background: var(--vscode-button-secondaryHoverBackground);
73+
background: var(--vscode-button-secondaryHoverBackground);
7474
}
7575

76-
input:not([type='checkbox']),
76+
input:not([type="checkbox"]),
7777
textarea {
78-
display: block;
79-
width: 100%;
80-
border: none;
81-
font-family: var(--vscode-font-family);
82-
padding: var(--input-padding-vertical) var(--input-padding-horizontal);
83-
color: var(--vscode-input-foreground);
84-
outline-color: var(--vscode-input-border);
85-
background-color: var(--vscode-input-background);
78+
display: block;
79+
width: 100%;
80+
border: none;
81+
font-family: var(--vscode-font-family);
82+
padding: var(--input-padding-vertical) var(--input-padding-horizontal);
83+
color: var(--vscode-input-foreground);
84+
outline-color: var(--vscode-input-border);
85+
background-color: var(--vscode-input-background);
8686
}
8787

8888
input::placeholder,
8989
textarea::placeholder {
90-
color: var(--vscode-input-placeholderForeground);
90+
color: var(--vscode-input-placeholderForeground);
9191
}

package.json

+22
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,14 @@
5151
},
5252
"views": {
5353
"sourcery-explorer": [
54+
{
55+
"id": "sourcery.chat",
56+
"name": "Chat",
57+
"type": "webview",
58+
"icon": "sourcery-icon.png",
59+
"contextualTitle": "Chat",
60+
"when": "sourcery.features.code_understanding"
61+
},
5462
{
5563
"id": "sourcery.rules",
5664
"name": "Rules",
@@ -208,6 +216,11 @@
208216
"title": "Toggle Advanced Mode",
209217
"category": "Sourcery"
210218
},
219+
{
220+
"command": "sourcery.chat.clearChat",
221+
"title": "Clear",
222+
"category": "Sourcery"
223+
},
211224
{
212225
"command": "sourcery.scan.selectLanguage",
213226
"title": "Select Language",
@@ -250,6 +263,11 @@
250263
"command": "sourcery.scan.toggleAdvanced",
251264
"when": "view == sourcery.rules",
252265
"group": "navigation"
266+
},
267+
{
268+
"command": "sourcery.chat.clearChat",
269+
"when": "view == sourcery.chat",
270+
"group": "navigation"
253271
}
254272
],
255273
"view/item/context": [
@@ -315,6 +333,10 @@
315333
"command": "sourcery.scan.toggleAdvanced",
316334
"when": "false"
317335
},
336+
{
337+
"command": "sourcery.chat.clearChat",
338+
"when": "false"
339+
},
318340
{
319341
"command": "sourcery.scan.selectLanguage",
320342
"when": "false"

0 commit comments

Comments
 (0)