replace occurrences of elseif

pull/2143/head
Richard Harris 7 years ago
parent 1ac5b51f39
commit 4f6ffc4612

@ -1579,7 +1579,7 @@
"dev": true "dev": true
}, },
"eslint-plugin-svelte3": { "eslint-plugin-svelte3": {
"version": "git+https://github.com/sveltejs/eslint-plugin-svelte3.git#651d7e3695b1731251ab3a501d1067b561ede09f", "version": "git+https://github.com/sveltejs/eslint-plugin-svelte3.git#5fc4861d4b191649b0badf4f9a4c2470f08b237e",
"from": "git+https://github.com/sveltejs/eslint-plugin-svelte3.git#semver:*", "from": "git+https://github.com/sveltejs/eslint-plugin-svelte3.git#semver:*",
"dev": true "dev": true
}, },
@ -4759,9 +4759,9 @@
} }
}, },
"svelte": { "svelte": {
"version": "3.0.0-beta.8", "version": "3.0.0-beta.9",
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.0.0-beta.8.tgz", "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.0.0-beta.9.tgz",
"integrity": "sha512-9cJHYdEs5h/6TJPwY+vfzwrznCLDjfS1rlJQz8SzPKfUJHCPxnDCbIZ95iPzATkv8aLHGcn1a/nLthyG+xh2IQ==", "integrity": "sha512-e6BKetUwiLFuUlh70MRUBNeaVm7EBi2Z4V6olAY8Xyt5N8aK3KrgrmNLFsmjSjs+b3X5RmY+7crRER+Eq64Vgg==",
"dev": true "dev": true
}, },
"tar": { "tar": {

@ -53,6 +53,6 @@
"rollup-plugin-svelte": "^5.0.3", "rollup-plugin-svelte": "^5.0.3",
"rollup-plugin-terser": "^4.0.4", "rollup-plugin-terser": "^4.0.4",
"sapper": "^0.26.0-alpha.10", "sapper": "^0.26.0-alpha.10",
"svelte": "^3.0.0-beta.8" "svelte": "^3.0.0-beta.9"
} }
} }

@ -0,0 +1,290 @@
<script context="module">
let codemirror_promise;
let _CodeMirror;
if (process.browser) {
codemirror_promise = import(/* webpackChunkName: "codemirror" */ './_codemirror.js');
codemirror_promise.then(mod => {
_CodeMirror = mod.default;
});
}
</script>
<script>
import { onMount, beforeUpdate, createEventDispatcher } from 'svelte';
const dispatch = createEventDispatcher();
export let mode;
export let code;
export let readonly = false;
export let error = null;
export let errorLoc = null;
export let warningCount = 0;
export let flex = false;
export let lineNumbers = true;
export let tab = true;
let w;
let h;
export function resize() {
editor.refresh();
}
const modes = {
json: {
name: 'javascript',
json: true
},
handlebars: {
name: 'handlebars',
base: 'text/html'
}
};
const refs = {};
let editor;
let updating = false;
let marker;
let error_line;
let destroyed = false;
let CodeMirror;
$: if (CodeMirror) {
createEditor(mode);
}
$: if (editor && !updating && code != null) {
updating = true;
editor.setValue(code);
}
$: if (editor && w && h) {
editor.refresh();
}
$: {
if (marker) marker.clear();
if (errorLoc) {
const line = errorLoc.line - 1;
const ch = errorLoc.column;
marker = editor.markText({ line, ch }, { line, ch: ch + 1 }, {
className: 'error-loc'
});
error_line = line;
} else {
error_line = null;
}
}
let previous_error_line;
$: if (editor) {
if (previous_error_line != null) {
editor.removeLineClass(previous_error_line, 'wrap', 'error-line')
}
if (error_line && (error_line !== previous_error_line)) {
editor.addLineClass(error_line, 'wrap', 'error-line');
previous_error_line = error_line;
}
}
onMount(() => {
if (_CodeMirror) {
CodeMirror = _CodeMirror;
} else {
codemirror_promise.then(mod => {
CodeMirror = mod.default;
});
}
return () => {
destroyed = true;
if (editor) editor.toTextArea();
}
});
beforeUpdate(() => {
updating = false;
});
function createEditor(mode) {
if (destroyed) return;
if (editor) {
editor.toTextArea();
}
const opts = {
lineNumbers,
lineWrapping: true,
indentWithTabs: true,
indentUnit: 2,
tabSize: 2,
value: code,
mode: modes[mode] || {
name: mode
},
readOnly: readonly
};
if (!tab) opts.extraKeys = {
Tab: tab,
'Shift-Tab': tab
};
editor = CodeMirror.fromTextArea(refs.editor, opts);
editor.on('change', instance => {
if (!updating) {
updating = true;
code = instance.getValue();
dispatch('change', { value: code });
}
});
editor.refresh();
}
</script>
<style>
.codemirror-container {
position: relative;
width: 100%;
height: 100%;
border: none;
line-height: 1.5;
}
.codemirror-container :global(.CodeMirror) {
height: 100%;
/* background: var(--background); */
background: transparent;
font: 400 var(--code-fs)/1.7 var(--font-mono);
color: var(--base);
}
.codemirror-container.flex :global(.CodeMirror) {
height: auto;
}
.codemirror-container.flex :global(.CodeMirror-lines) {
padding: 0;
}
.codemirror-container :global(.CodeMirror-gutters) {
padding: 0 1.6rem 0 .8rem;
border: none;
}
.codemirror-container .message {
position: absolute;
bottom: 2.4rem;
left: 2.4rem;
z-index: 20;
}
.codemirror-container :global(.error-loc) {
position: relative;
border-bottom: 2px solid #da106e;
}
.codemirror-container :global(.error-line) {
background-color: rgba(200, 0, 0, .05);
}
.loading,
.error {
text-align: center;
color: #999;
font-weight: 400;
margin: 2.4rem 0 0 0;
}
.loading {
background-color: #666;
}
textarea {
visibility: hidden;
}
pre {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
border: none;
padding: 4px 4px 4px 57px;
resize: none;
font-family: var(--font-mono);
font-size: 1.3rem;
line-height: 1.7;
user-select: none;
pointer-events: none;
color: #ccc;
tab-size: 2;
-moz-tab-size: 2;
}
.flex pre {
padding: 0 0 0 4px;
height: auto;
}
.flex .loading {
display: none;
}
</style>
<!--
-----------------------------------------------
syntax-highlighting [prism]
NOTE
- just started to transfer colors from prism to codemirror
-----------------------------------------------
-->
<div class='codemirror-container' class:flex bind:offsetWidth={w} bind:offsetHeight={h}>
<textarea
tabindex='2'
bind:this={refs.editor}
readonly
value={code}
></textarea>
{#if error}
<p class='error message'>
{#if error.loc}
<strong>
{#if error.filename}
<span
class='filename'
on:click="{() => dispatch('navigate', { filename: error.filename })}"
>{error.filename}</span>
{/if}
({error.loc.line}:{error.loc.column})
</strong>
{/if}
{error.message}
</p>
{:else if warningCount > 0}
<p class='warning message'>
Compiled, but with {warningCount} {warningCount === 1 ? 'warning' : 'warnings'} — check the console for details
</p>
{/if}
{#if !CodeMirror}
<pre style="position: absolute; left: 0; top: 0"
>{code}</pre>
<p class='loading message'>loading editor...</p>
{/if}
</div>
Loading…
Cancel
Save