Go

LSP 実装メモ(gopls cache `View` 生成編)

前回 tennashi.hatenablog.com 引き続き、gopls の cache 実装を読む。 前回のまとめ gopls で採用されている cache は 3 層で前回読んだのは Cache/Session の 2 層だ。 Cache 素朴な OS ファイルシステム上のファイルの cache cache 自体の実体は source.F…

facebook/ent を使ってみた

Go

最近 GraphQL の素振りのため、シンプルな Web アプリケーションを作ることを考えていた。 で、どうせなら最低限の機能はシングルバイナリ + いくつかのファイルを用意するだけで動作させようと思い、以下のような構成だけなんとなく考えた。 フロントアプリ…

LSP 実装メモ(gopls cache `Cache` `Session` 編)

前回 tennashi.hatenablog.com 今回から少し gopls の cache 機構を集中して読んでいく。 というのも結局 LSP サーバの実装の肝は クライアントから受け取った TextDocument の中身をいつパースするか どのようにパースするか どのように保持するか どうやっ…

LSP 実装メモ (Text Document Synchronization `textDocument/didClose` 編)

前回 tennashi.hatenablog.com 仕様: Language Server Protocol Specification - 3.15 訳したやつ: tennashi/lsp_spec_ja 引き続き、Text Document Synchronization 周りの仕様について書いていく。 textDocument/didOpen 通知 <- done textDocument/didChan…

LSP 実装メモ (Text Document Synchronization `textDocument/didSave` 編)

前回 tennashi.hatenablog.com 仕様: Language Server Protocol Specification - 3.15 訳したやつ: tennashi/lsp_spec_ja 引き続き、Text Document Synchronization 周りの仕様について書いていく。 textDocument/didOpen 通知 <- done textDocument/didChan…

LSP 実装メモ (Text Document Synchronization `textDocument/willSave` `textDocument/willSaveWaitUntil` 編)

前回 tennashi.hatenablog.com 週刊 LSP 第三号 前回 gopls で見つけた Issue は無事 merge された 仕様: Language Server Protocol Specification - 3.15 訳したやつ: tennashi/lsp_spec_ja 引き続き、Text Document Synchronization 周りの仕様について書…

LSP 実装メモ (Text Document Synchronization `textDocument/didChange` 編)

tennashi.hatenablog.com 週刊 LSP 第二号。 Language Server Protocol に従ったサーバを実装するためのメモ 仕様: Language Server Protocol Specification - 3.15 訳したやつ: tennashi/lsp_spec_ja 前回に引き続き、Text Document Synchronization 周りの…

LSP 実装メモ (Text Document Synchronization `textDocument/didOpen` 編)

Language Server Protocol に従ったサーバを実装するためのメモ 仕様: Language Server Protocol Specification - 3.15 訳したやつ: tennashi/lsp_spec_ja まずは Text Document Synchronization の実装から調査する。 Text Document Synchronization とは T…

バイナリ操作奮闘記 前編(アセンブリ/手書き編)

最近以下のテキストを読みながら C コンパイラを書いています www.sigbus.info 書いてるうちにふと疑問がわいてきました 9cc はアセンブリを出力しているけども実際の実行ファイルにするために gcc 挟んでいるし、アセンブリを ELF 形式の実行ファイルにする…

最近よく書く HTTP サーバ基礎部分

Go

この記事は Go3 Advent Calendar 2019 13日目の記事です qiita.com TL;DR x/sync/errgroup はいいぞ 本編 最近よく書くサーバの起動部分のコードを紹介します 分かる人には見るのが一番早いと思うので、早速コード全体を載せます やりたいことは localhost:8…

golang.tokyo #25 参加レポ

Go

golang.tokyo #25 に参加してきました 補欠だったんですが、ブログ枠が空いてたので急遽そっちで参加することに でいい機会なのでブログをはじめてみることにしました というわけで本題 今改めて読みなおしたい Go 基礎情報 その1 docs.google.com 概要 Go …