Markdownをリアルタイムに解析する

https://fortee.jp/iosdc-japan-2018/proposal/a2e20820-d4f6-43e5-b34b-1b9e6fec7806 より Markdownを解析する時にGitHubで探せば簡単にライブラリを何個も見つけることができます。しかし、をそれをリアルタイムとなるとなかなかみつけることができません。私は端末間で同期できるメモアプリを作成し、機能の一つに入力しながらMarkdown形式に色付けをする機能を実装しました。本トークではリアルタイムに文章を解析し、リッチな表現をどのようにして行っているのかを解説します。
3
もっちー@iOS @Motchy_1204

lineRange 指定した行の範囲を取得 #iosdc #b

2018-08-31 10:57:07
( ・ㅂ・ ) @a_aryzae

func lineRange(for range: NSRange)で行を取得できて便利 #iosdc #b

2018-08-31 10:57:15
宇佐見公輔 @usamik26

lineRange 便利よね、NSRange なのが嫌だけど #iosdc #b

2018-08-31 10:57:25
こたら @kotala_b

lineRange初めて知った lineRange(for:) - NSString | Apple Developer Documentation developer.apple.com/documentation/… #iosdc #b

2018-08-31 10:57:40
するぷ @isloop

Markdownをリアルタイムに解析する面白いなぁ。ソースコード見たい。#iosdc #b

2018-08-31 10:57:58
( ・ㅂ・ ) @a_aryzae

絵文字とか特殊文字の考慮は骨おれそう #iosdc #b

2018-08-31 10:58:05
かっくん @fromkk

絵文字はUTF-16を意識する必要がある #iosdc #b

2018-08-31 10:58:05
椎名夏希 @417_72ki

`lineRange(for:)`なんてあるのか #iosdc #b

2018-08-31 10:58:10
( ・ㅂ・ ) @a_aryzae

このへんSwift2と3と4あたりで苦労話結構あったよねー #iosdc #b

2018-08-31 11:00:16
こたら @kotala_b

絵文字が含まれてるときの文字数取るときのつらみ #iosdc #b

2018-08-31 11:00:25
もっちー@iOS @Motchy_1204

絵文字の場合カウントが色々変わってしまう #iosdc #b

2018-08-31 11:00:29
かっくん @fromkk

NSStringとString共に扱う必要があってコンテキストスイッチ大変そうだ #iosdc #b

2018-08-31 11:00:29
マイ・ブロークンはるふ @_ha1f

今日はいっぱい書くの忘れてた NSStringはUTF16で文字数とかを管理してるので長さはそれでやる Stringは隠蔽してくれてるので楽 #iosdc #b

2018-08-31 11:00:58
Kosuke Ogawa🏝エンジニア @koogawa

#iosdc #b Markdown をリアルタイムに解析する話を聞いている。絵文字の処理は確かに大変そう

2018-08-31 11:00:59
かっくん @fromkk

入力補佐はイベントハンドリングする必要がある。改行やタブなど #iosdc #b

2018-08-31 11:01:01
椎名夏希 @417_72ki

NSTextViewとUITextView両方に考慮... #iosdc #b

2018-08-31 11:01:09
かっくん @fromkk

iPhoneでタブ入力無い問題 #iosdc #b

2018-08-31 11:02:48
椎名夏希 @417_72ki

むしろNSTextViewの方がよしなにやってくれるのか 確かにTabキーとか無いからUITextViewの方がエグみあるな... #iosdc #b

2018-08-31 11:03:05