Skip to content

Commit af25dc6

Browse files
authored
Pe 11 12 18 (#5)
* ready to tackle the height issue * height adjusts, but requires some more testing * removed fullscreen * height now works * set font family to "JetBrains Mono"
1 parent 49e0b72 commit af25dc6

File tree

6 files changed

+22
-124
lines changed

6 files changed

+22
-124
lines changed

src/linecomps.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -704,7 +704,7 @@ class LineCmd extends React.Component<
704704
<div
705705
key="minimise"
706706
title={`${this.isMinimised.get() ? "Maximise" : "Minimise"}`}
707-
className={cn("line-icon", "line-minimise")}
707+
className={cn("line-icon", "line-minimise", this.isMinimised.get() ? "line-icon-show" : "")}
708708
onClick={this.clickMinimise}
709709
>
710710
<i

src/lines.less

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@
5353
font-size: 1.5rem;
5454
}
5555

56+
.line-icon-show {
57+
visibility: visible;
58+
}
59+
5660
.line-bookmark:hover {
5761
color: white;
5862
}

src/plugins.ts

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { RendererPluginType } from "./types";
22
import { SimpleImageRenderer } from "./view/image";
33
import { SimpleMarkdownRenderer } from "./view/markdown";
4-
import { SimpleJsonRenderer } from "./view/json";
54
import { SourceCodeRenderer } from "./view/code";
65
import { OpenAIRenderer, OpenAIRendererModel } from "./view/openai";
76
import { isBlank } from "./util";
@@ -29,17 +28,6 @@ const MarkdownPlugin: RendererPluginType = {
2928
simpleComponent: SimpleMarkdownRenderer,
3029
};
3130

32-
const JsonPlugin: RendererPluginType = {
33-
name: "json",
34-
rendererType: "simple",
35-
heightType: "pixels",
36-
dataType: "blob",
37-
collapseType: "hide",
38-
globalCss: null,
39-
mimeTypes: ["application/json"],
40-
simpleComponent: SimpleJsonRenderer,
41-
};
42-
4331
const CodePlugin: RendererPluginType = {
4432
name: "code",
4533
rendererType: "simple",
@@ -97,7 +85,6 @@ if ((window as any).PluginModel == null) {
9785
PluginModel = new PluginModelClass();
9886
PluginModel.registerRendererPlugin(ImagePlugin);
9987
PluginModel.registerRendererPlugin(MarkdownPlugin);
100-
PluginModel.registerRendererPlugin(JsonPlugin);
10188
PluginModel.registerRendererPlugin(CodePlugin);
10289
PluginModel.registerRendererPlugin(OpenAIPlugin);
10390
(window as any).PluginModel = PluginModel;

src/types.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,7 @@ type RendererOpts = {
354354
idealSize: WindowSize;
355355
termOpts: TermOptsType;
356356
termFontSize: number;
357+
readOnly: boolean;
357358
};
358359

359360
type RendererOptsUpdate = {
@@ -411,13 +412,6 @@ type SimpleBlobRendererComponent = React.ComponentType<{
411412
opts: RendererOpts;
412413
savedHeight: number;
413414
}>;
414-
// @mike - I guess we can remove SimpleJsonRendererComponent - its doesnt have any references
415-
type SimpleJsonRendererComponent = React.ComponentType<{
416-
data: any;
417-
context: RendererContext;
418-
opts: RendererOpts;
419-
savedHeight: number;
420-
}>;
421415
type FullRendererComponent = React.ComponentType<{ model: any }>;
422416

423417
type WindowSize = {

src/view/code.tsx

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import * as mobx from "mobx";
33
import * as mobxReact from "mobx-react";
44
import { RendererContext, RendererOpts } from "../types";
55
import Editor from "@monaco-editor/react";
6+
import { GlobalModel } from "../model";
67

78
type OV<V> = mobx.IObservableValue<V>;
89

@@ -18,14 +19,8 @@ class SourceCodeRenderer extends React.Component<
1819
},
1920
{}
2021
> {
21-
code: OV<any> = mobx.observable.box(null, {
22-
name: "code",
23-
deep: false,
24-
});
25-
language: OV<any> = mobx.observable.box(null, {
26-
name: "language",
27-
deep: false,
28-
});
22+
code: OV<string> = mobx.observable.box("");
23+
language: OV<string> = mobx.observable.box("");
2924
languages: OV<string[]> = mobx.observable.box([]);
3025
selectedLanguage: OV<string> = mobx.observable.box("");
3126

@@ -73,26 +68,30 @@ class SourceCodeRenderer extends React.Component<
7368

7469
render() {
7570
let opts = this.props.opts;
76-
let maxWidth = opts.maxSize.width;
77-
let minWidth = opts.maxSize.width;
78-
if (minWidth > 1000) {
79-
minWidth = 1000;
80-
}
8171
let lang = this.language.get();
8272
let code = this.code.get();
83-
if (!code) return <></>;
73+
if (!code) {
74+
return <div className="renderer-container code-renderer" style={{ height: this.props.savedHeight }} />;
75+
}
76+
const noOfLines = code.split("\n").length;
77+
const editorHeight = Math.min(
78+
noOfLines * GlobalModel.termFontSize.get() * 1.5 + 10,
79+
parseInt(opts.maxSize.height)
80+
);
8481
return (
8582
<div className="renderer-container code-renderer">
86-
<div className="scroller" style={{ maxHeight: opts.maxSize.height }}>
83+
<div className="scroller" style={{ maxHeight: opts.maxSize.height, paddingBottom: "15px" }}>
8784
<Editor
88-
height="30vh"
8985
theme="hc-black"
86+
height={editorHeight}
9087
defaultLanguage={lang}
9188
defaultValue={code}
9289
onMount={this.handleEditorDidMount}
9390
options={{
9491
scrollBeyondLastLine: false,
95-
fontSize: "14px",
92+
fontSize: GlobalModel.termFontSize.get(),
93+
fontFamily: "JetBrains Mono",
94+
readOnly: this.props.opts.readOnly,
9695
}}
9796
/>
9897
</div>

src/view/json.tsx

Lines changed: 0 additions & 86 deletions
This file was deleted.

0 commit comments

Comments
 (0)