型変換 - JavaScript
JavaScriptでの型変換をメモしておく
数値 → 文字列
String()
を使う
> String(1); < "1" >typeof String(1); < "string"
参考文献
初心者でも迷わない!JavaScriptの数値⇔文字列変換はコレだけ覚えよ! | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト
要素の削除 - JavaScript
要素を削除するには2通りあるらしい(今のところ知っている範囲だと)
- removeChild():親要素から子要素を削除する
- remove():自分自身を削除する
例)child1
というidをもった要素を削除したいとき
removeChild()
親要素を取得し、子要素である自分を削除する感じ
const child = document.getElementById("child1"); child.parentNode.removeChild(child);
remove()
自分自身を削除することができる
document.getElementById("child1").remove();
使い分けは?
親から見て、削除したいときにはremoveChild()
がいいのかな? よくわかんない
参考文献
自動補完(Autocomplete)の追加
エディタのいろいろな設定 CodeMirror - JavaScript - TIL の続き
自動補完機能はaddonを使うことで実装できる。でも、CSSとJavaScriptとHTMLだけなのかな?
addon
フォルダ内にアドオンは入っている。ダウンロードしたフォルダに入っているaddon
をコピーしてくる
. ├── index.html ├── addon // コピーしてくる ├── lib ├── mode └── theme
自動保管を行うためには以下の手順で行う
- 必要なjsファイルとcssファイルを読み込む
- キーマップを設定する
まず、必要なファイルを読み込む
自動補完のためのファイルはaddon/hint
に入っている。今回はCSSの自動補完をしたいため、以下の3つのファイルを読み込む
※ show-hint.jsとshow-hint.cssはどの言語の自動補完をする時も必ず読み込むこと
<head> <script src="addon/hint/show-hint.js"></script> <script src="addon/hint/css-hint.js"></script> <link rel="stylesheet" href="addon/hint/show-hint.css"> </head>
次に、自動保管を行うためのキーマップを設定する。今回はCtrl + Space
で自動補完をするようにする
extraKeys
で指定する
const conf = { extraKeys: {"Ctrl-Space": "autocomplete"}, };
Ctrl+Spaceを押すと以下のように表示される!
おぉ!!できてる!!!
こんな面白いこともできるっぽい!!
CodeMirrorでEmoji AutoCompleteをする
チュートリアルは一段落したから、色々いじってみて、テキストエディタを充実させるぞ!!!
参考文献
エディタのいろいろな設定 CodeMirror - JavaScript
テーマの設定 CodeMirror - JavaScript - TIL の続き
コンストラクタに渡すことで簡単にいろいろな設定ができる
タブのサイズの設定
tabSize
で指定できる。デフォルトは4
- tabSize: integer
例)タブのサイズを8に設定
const conf = { tabSize: 8, };
行数の表示
lineNumbers
で指定する。true
で表示。デフォルトはfalse
- lineNumbers: boolean
const conf = { lineNumbers: true, };
最初の行数の指定
firstLineNumber
で指定する。初期値は1
- firstLineNumber: integer
例)行数を20からにする
const conf = { firstLineNumber: 20, };
たくさん設定できるっぽいからいろいろいじってみよう!!
参考文献
テーマの設定 CodeMirror - JavaScript
シンタックスハイライトの設定 CodeMirror - JavaScript - TIL の続き
この動画を見て、実際にテーマの変更をしてみた
すごい簡単にできてびっくりした
theme
フォルダにテーマ(.cssファイル)は格納されている
以下のようにtheme
フォルダをコピーしてくる
. ├── index.html ├── lib ├── mode └── theme // コピーしてくる
themeの中を見てみたんだけど、gruvboxがない!!!!!大好きなテーマがなくて少しショック...
テーマの設定
今回はテーマをmonokai
にしてみる
テーマの設定をするには以下のようにする
- theme内にあるcssファイルを読み込む
- CodeMirrorオブジェクト生成時に
theme
でテーマを指定する
まずはCSSの読み込み
<head> ... <link rel="stylesheet" href="theme/monokai.css"> ... </head>
次に、CodeMirrorオブジェクトの生成時にテーマを指定する
theme: テーマ名
とすることで設定できる
<body> ... <script> const editor = CodeMirror(document.getElementById("codeeditor"), { mode: "css", theme: "monokai" /* テーマの設定 */ }); <script> <body>
設定はdictionaryで渡すこともできる!
<body> ... <script> // dictionaryを生成して渡す const conf = { mode: "css", theme: "monokai" }; const editor = CodeMirror(document.getElementById("codeeditor"), conf); <script> <body>
参考文献
シンタックスハイライトの設定 CodeMirror - JavaScript
それっぽいテキストエディタを簡単に実装 CodeMirror - JavaScript - TIL の続き
この動画でCodeMirrorのエディタのシンタックスハイライトの設定を学んだ
フォルダ構造は以下のようになっている
. ├── index.html ├── lib └── mode
シンタックスハイライトの設定
シンタックスを適用するには以下の手順で行う
- 適用したい言語のシンタックスの設定ファイルを取り込む
- CodeMirrorオブジェクトの生成時に
mode
で言語を指定する
まずはシンタックスの設定ファイルを読み込む
mode
フォルダにいろんな言語のシンタックスの設定ファイル(.jsファイル)が入っている
CSSのシンタックスハイライトをしたい場合、CSSの設定ファイルを取り込む。CSSの設定ファイルは以下の場所にある。
. ├── index.html ├── lib │ ├── codemirror.css │ └── codemirror.js └── mode ... ├── css │ ├── css.js // これがCSSのシンタックスハイライトのファイル │ ├── gss.html │ ├── gss_test.js │ ├── index.html │ ├── less.html │ ├── less_test.js │ ├── scss.html │ ├── scss_test.js │ └── test.js ...
CSSのシンタックスのファイルはmode/css/css.js
なので、以下のように読み込む
(CSSだから少しややこしいけど、JavaScriptの場合、mode/css/javascript.js
となる)
<head> <script src="mode/css/css.js"></script> </head>
もし、なにも読み込んでいなかった場合、色は変わらない
次に、CodeMirrorオブジェクトの生成時にシンタックスを指定する
mode: モード
というように指定する。もし指定しなかった場合(mode
すら渡さない)、最初に読み込んでいるシンタックスの設定ファイルが適用される
<body> ... <script> const editor = CodeMirror(document.getElementById("codeeditor"), { mode: "css" /* CSSのシンタックス */ }); </script> </body>
全体のソース
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>CodeMirror</title> <!-- 以下の2つは必ず読み込む --> <link rel="stylesheet" href="lib/codemirror.css"> <link rel="stylesheet" href="theme/monokai.css"> <script src="lib/codemirror.js"></script> <script src="mode/css/css.js"></script> <style> body { background-color: #ccc; } </style> </head> <body> <div id="codeeditor"></div> <script> const editor = CodeMirror(document.getElementById("codeeditor"), { mode: "css" /* modeの指定 */ }); </script> </body> </html>