Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions packages/org.standardnotes.code-editor/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,32 +28,29 @@
<script src="dist/lib/component-relay.js"></script>
<!-- Required for styling selected text -->
<script src="dist/codemirror/addon/selection/mark-selection.js"></script>
<script>
CodeMirror.modeURL = "dist/codemirror/mode/%N/%N.js";
</script>
</head>

<body class="sn-component">
<div class="wrapper">
<textarea id="code" name="code"></textarea>
<div>
<div class="sk-app-bar no-edges no-bottom-edge" style="width: inherit;">
<div id="bar" class="sk-app-bar no-edges no-bottom-edge">
<div class="left">
<div class="sk-app-bar-item no-pointer">
<span class="sk-p">Language:</span>
</div>
<div class="sk-app-bar-item no-pointer">
<select id="language-select" onchange="onLanguageSelect(event)"></select>
<select id="language-select"></select>
</div>
<div class="sk-app-bar-item">
<span id="default-label" class="sk-label" onclick="setDefaultLanguage(event)">Set as Default</span>
<span id="default-label" class="sk-label">Set as Default</span>
</div>
</div>
<div class="center"></div>
<div class="right">
<div class="sk-app-bar-item no-pointer border"></div>
<div class="sk-app-bar-item">
<span id="toggle-vim-mode-button" class="sk-label" onclick="toggleVimMode()">Enable Vim mode</span>
<span id="toggle-vim-mode-button" class="sk-label">Enable Vim mode</span>
</div>
</div>
</div>
Expand Down
14 changes: 11 additions & 3 deletions packages/org.standardnotes.code-editor/src/main.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
CodeMirror.modeURL = "dist/codemirror/mode/%N/%N.js";

document.addEventListener('DOMContentLoaded', function () {
const modeByModeMode = CodeMirror.modeInfo.reduce(function (acc, m) {
if (acc[m.mode]) {
Expand Down Expand Up @@ -163,13 +165,15 @@ document.addEventListener('DOMContentLoaded', function () {
updateVimStatus(keymap)
}

window.onLanguageSelect = function () {
function onLanguageSelect() {
const language = modes[select.selectedIndex]
changeMode(language)
saveNote()
}

window.setDefaultLanguage = function () {
document.getElementById('language-select').addEventListener('change', onLanguageSelect)

function setDefaultLanguage() {
const language = modes[select.selectedIndex]

// assign default language for this editor when entering notes
Expand All @@ -187,6 +191,8 @@ document.addEventListener('DOMContentLoaded', function () {
}, 750)
}

document.getElementById('default-label').addEventListener('click', setDefaultLanguage)

function inputModeToMode(inputMode) {
const convertCodeMirrorMode = function (codeMirrorMode) {
if (codeMirrorMode) {
Expand Down Expand Up @@ -260,7 +266,7 @@ document.addEventListener('DOMContentLoaded', function () {
toggleButton.classList.add(buttonClass)
}

window.toggleVimMode = function () {
function toggleVimMode() {
let newKeyMap

const currentKeyMap = componentRelay.getComponentDataValueForKey('keyMap') ?? 'default'
Expand All @@ -274,6 +280,8 @@ document.addEventListener('DOMContentLoaded', function () {
componentRelay.setComponentDataValueForKey('keyMap', newKeyMap)
}

document.getElementById('toggle-vim-mode-button').addEventListener('click', toggleVimMode)

function getInputStyleForEnvironment() {
const environment = componentRelay.environment ?? 'web'
return environment === 'mobile' ? 'textarea' : 'contenteditable'
Expand Down
4 changes: 4 additions & 0 deletions packages/org.standardnotes.code-editor/src/main.scss
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,7 @@ body, html {
.cm-fat-cursor .CodeMirror-line > span[role="presentation"] {
caret-color: transparent;
}

#bar {
width: inherit;
}