パスワードを忘れた? アカウント作成

yuuka_maniaさんのトモダチの日記みんなの日記も見てね。 スラドのTwitterでストーリをフォローしよう。

15656941 journal
日記

yuuka_maniaの日記: そろそろ eglot とか導入してみようか否か

日記 by yuuka_mania

周回遅れなのは、百も承知だが、とりあえず、メモ。

https://granddaifuku.hatenablog.com/entry/emacs-eglot

こっちの方が参考になった
https://solist.work/blog/posts/language-server-protocol/

Eglot 本家
https://github.com/joaotavora/eglot

とりあえず、 go の language server は、 gopls というものらしく、それは、 brew install した。

Emacs 側は、↓な感じ。

(leaf eglot
  :ensure t
  :config
  (add-hook 'go-mode-hook 'eglot-ensure)
;;  (define-key eglot-mode-map (kbd "C-c e f") 'eglot-format)
;;  (define-key eglot-mode-map (kbd "C-c e n") 'eglot-rename)
  )

M-C-i で、補完が効く模様。ドキュメントを見るときは、 M-x eldoc とか。
eldoc-mode にすると、リアルタイムにミニバッファにドキュメントが表示される模様。だけど、個人的に、この振る舞いはあまり好みではない。

Typescript も追加した。 language server は、↓な感じ。

% npm install -g typescript-language-server

今は、もう設定も何も要らないっぽいな。面倒そうと思ってたが、全然だった。

(leaf eglot
  :ensure t
  :config
  (add-hook 'go-mode-hook 'eglot-ensure)
  (add-hook 'typescript-mode-hook 'eglot-ensure)
  )

さらに、 c/c++ も追加。language serverは、 ccls

% brew install ccls

(leaf eglot
  :ensure t
  :config
  (add-hook 'go-mode-hook 'eglot-ensure)
  (add-hook 'typescript-mode-hook 'eglot-ensure)
  (add-hook 'cc-mode-hook 'eglot-ensure)
  )

15655830 journal
日記

yuuka_maniaの日記: Rust 製ツール 1

日記 by yuuka_mania

ref.
https://wonderwall.hatenablog.com/entry/rust-command-line-tools#tokei

なんで、 こういうツールが充実してるんだろう? > Rust
書きやすいライブラリ?ミドルウェア?でもあるのだろうか? 知らないだけで、 Go もこんな感じ?

15655775 journal
日記

yuuka_maniaの日記: Happy Hacking Keyboardの軌跡と新たな一歩

日記 by yuuka_mania
ref. https://news.mynavi.jp/article/newsinsight-159/

1996年12月に、2万9,800円という価格で発売されたHHKBは、1999年に金型の償却が終了したのにあわせて、1万9,800円へと値下げ。

私の持ってる、 PD-KB01 は、97-08。かなり初期のもののようだ。

15652083 journal
日記

yuuka_maniaの日記: Javascript RegExp source プロパティ

日記 by yuuka_mania

RegExp オブジェクトを作って、 .source プロパティを見ると、正規表現文字列が出てくる。文字列で、正規表現を書く時は、厄介になるのが、バックスラッシュで、重ねないとダメ。なので、できるなら、正規表現は、正規表現リテラルで書きたいのが一般的。にもかかわらず、文字列がとれる source プロパティの存在がよくわからなかったのだけど、とっても単純で、文字列にすれば、それをプログラム的にいじれるからか。ユースケースもイメージできたので、スッキリしたー。

15651889 journal
日記

yuuka_maniaの日記: 単語単位のdiff 2

日記 by yuuka_mania

word diff とでもいうのか。 diff(1) で、できるだろうぐらいに思ってたが、できない?加えて、そんなツールいくらでもあるだろうと思い、サーチしてみたけど、どれが一般的なのか、よくわからず。

が、実は、 git でできることを知り、これなら、基本標準的にインストールされてるし、理想的なそれでした。

% git diff --no-index --word-diff A B

たまにしか使わないから、また、忘れそうだが。 Emacs の ediff とかではできないのものか。

追記
やってみたら、標準的にできてました > ediff m(_ _)m

p.s.
ediff コントロールパネルフレームを、消してしまったら、バッファとしては残ってるので、C-x b のバッファ選択画面で選べば復帰できる。

15649499 journal
日記

yuuka_maniaの日記: Emacs の swiper.el 使ってるんだが

日記 by yuuka_mania

Ivy というか、 swiper というか、よくわからないが、それを使ってる。ふと、 swiper.el を見てみたら、色々便利なキーマップが設定されてたので、メモ。

C-s で、 swiper に入ったら、
- 再度、C-s すると、前回のサーチキーワードで、もう一度サーチしてくれる。
- M-n で、カーソルにある単語をサーチキーワードにしてくれるっぽい。
- サーチワードを入力後、 C-' で、 検索結果のそれぞれに、a, b, c ... といったタグマークっぽいものがつくので、それを入力することで、一発でそれに飛べる。C-n, C-p で、検索結果を順番に選択してても、そこまでうっとおしくないから、あまり使わないかもしれないが。こういう選択インターフェースあ、avy というのかな。

15648076 journal
日記

yuuka_maniaの日記: Javascript generator function とか、yield とか 1

日記 by yuuka_mania

なんとなくあるのはわかってたものの、見て見ぬふりをしてたが、簡単なサンプルを書いてみた。
意識すれば使い出もありそうだし、綺麗に書けるケースもあるだろうが、どうだろうなぁ。

% node
Welcome to Node.js v16.13.0.
Type ".help" for more information.
> function* gen(x, y) {
... yield 10;
... yield 20;
... return x * y;
... }
undefined
> x = gen(3, 4);
Object [Generator] {}
> x.next().value;
10
> x.next().value;
20
> x.next().value;
12
> x.next().value;
undefined

15645963 journal
日記

yuuka_maniaの日記: Firefox デバッガーメモ

日記 by yuuka_mania

cmd + ' もしくは、 F10 で、ステップオーバー
cmd + ; もしくは、 F11 で、ステップイン
cmd + / で、ヘルプ
cmd + shift + o で、関数の一覧から選択できる
cmd + [ もしくは、 cmd + ] で、デバッガーの、「インスペクター」「コンソール」「デバッガー」... というタブの移動ができる。あまり使う機会はないかもしれない。

デバッガータブで、コンソール出力を確認するには、右上の ... ボタンから、「コンソールペインを表示」を行う。 Esc ボタンで、それの有効無効をトグルすることもできる。

ソースペインで、右クリックすると、「ここまで実行」ができる

ソースペインで、右クリックすると、条件付きブレークポイントを設定できる

ソースペインで、右クリックすると、「ログを追加」ができるが、これは、基本的には変数を書くもので、console.log("x") など書いてもダメな模様。文字列を出したい場合は、 "xxx" ダブルクオートで囲むこと。

「ソースを無視」は、ライブラリなど(e.g. JQuery)を、デバッグする必要ない場合、無視することで、ブラックボックス的に扱うことができ、ステップ実行などがやりやすくなる

ブレークポイントの無効化は、右側のペイン内の「ブレークポイント」で、チェックボックスを外すことでできるが、これは、一時的に無効にするだけで、リフレッシュすると、保持されて再度有効になる。ソースペインの行数の部分のハイライトで、実際のブレークポイントの設定の削除ができる。

たくさん入れたブレークポイントを全部削除したいとかの場合、右側のブレークポイントエリアで、右クリックするといろんな操作を選べ、全削除もできる

右側のスコープを見ると、現在のスコープにある変数は一覧で掌握できる。 // ノートの画面が小さくて、気づけなかった...

cmd + shift + f で、要は、 grep みたいなことができるのだが、他のサーチ系の振る舞いは、リアルタイムインクリメンタルサーチなのに対し、これは、 Enter で確定しないと動作しないので要注意。

でかい配列などは、 console.dir するとFF Debugerの方で0..100づつぐらいにおりたたんでくれるが、全部をテキストなどで欲しい場合は、真面目に console.log した方が良い。目的の手間で、 コンソールペインを綺麗にして(ゴミ箱マークで)、目的の出力のみをさせ、コンソールペイン上で、右クリックで、「すべてのメッセージをコピー」できるので、それでエディタにコピペするなど。

// そもそもマウスをツールアイコン・ボタンに置いて、しばらく待つと、 tooltip で教えてくれる。

15645836 journal
日記

yuuka_maniaの日記: Typescript 分割代入

日記 by yuuka_mania

Typescript で、オブジェクトの一部分だけを抜きだす書き方があるんだが、どういう機能名なのかわからないまま使ってたけど、気が向いたので、調べたらどうも、分割代入みたいな言い方するっぽいことがわかった。スッキリ。

英語だと、Object Destructuring, Property Shorthand とか?
ref.
https://stackoverflow.com/questions/17781472/how-to-get-a-subset-of-a-javascript-objects-properties

オブジェクトの分割代入 (destructuring assignment)
ref.
https://typescriptbook.jp/reference/values-types-variables/object/destructuring-assignment-from-objects

15645616 journal
日記

yuuka_maniaの日記: Typesript の連想配列としての Object と Record と Map

日記 by yuuka_mania

私の理解だと、
Object は、型が any のなんでもあり。それを型指定できるようにしたのが、Record。
Map は、.get()や、.set() などのメソッドを使って操作するので、使い勝手が違う感じだが、安全という意味では、一番固い。

typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...