やたがわです。

力作に対して本筋ではない反応で、かつ代案を持っている訳では
ないので単なる感想で申し訳ないのですが、、

mode-lineの表示が"twittering-mode::friends[ssl]"のように、
:が並んでいて区切りが判りにくい(ような気がする)のと、

twittering-timeline-spec-to-string()�...@と~だけ特別扱い
している点がちょっと気になりました。

前者は好みの問題が大きいと思うので置いておくとして、後者は、
連想リストかなにかの定義を上書きすることでユーザが省略形を
追加できる仕組みがあるとよいかもしれません。

# でもそうすると遅くなるかな…


> 松尾です。

> 内部表現をS式に変更したtimeline specを実装してみました。

> http://github.com/cvmat/twittering-mode/tree/new-timeline-spec

> にcommitしてあります。S式の意味ははやみずさんご提案のままです。
> retweet関係とmentions, homeを追加してます。

> queryのエスケープをどうすべきかが判断できなかったのでsearchは
> 未実装です。direct-messages, direct-messages-sent, merge,
> filterは内部表現としては実装済みですがtimelineの表示には対応
> していません。
> (direct-message関係はXMLタグが他のtimelineと違うので…)

> ユーザ側の入力としては
> "USER", "USER/LISTNAME", ":public", ":filter/\\(@hoge\\|@fuga\\)/:home",
> "(USER+:replies+OTHER/LISTNAME+:filter/WORD/(hoge+fuga))"
> 等の書き方を許すようになっています。
> `twittering-timeline-spec-to-string'でspecから文字列表現へ、
> `twittering-string-to-timeline-spec'で文字列表現からspecへの
> 変換を行います。

> Timeline spec as S-expression
> - (user USER): timeline of the user whose name is USER. USER is a string.
> - (list USER LIST):
> the list LIST of the user USER. LIST and USER are strings.
> - (direct-messages): received direct messages.
> - (direct-messages-sent): sent direct messages.
> - (friends): friends timeline.
> - (home): home timeline.
> - (mentions): mentions timeline.
> mentions (status containing @username) for the authenticating user.
> - (public): public timeline.
> - (replies): replies.
> - (retweeted_by_me): retweets posted by the authenticating user.
> - (retweeted_to_me): retweets posted by the authenticating user's friends.
> - (retweets_of_me):
> tweets of the authenticated user that have been retweeted by others.
> - (search STRING): the result of searching with query STRING.
> - (merge SPEC1 SPEC2 ...): result of merging timelines SPEC1 SPEC2 ...
> - (filter REGEXP SPEC): timeline filtered with REGEXP.

> 文字列表現のルールは以下の通りです。

> Timeline spec string
> SPEC ::= PRIMARY | COMPOSITE
> PRIMARY ::= USER | LIST | DIRECT-MESSSAGES | DIRECT-MESSSAGES-SENT
> | FRIENDS | HOME | MENTIONS | PUBLIC | REPLIES
> | RETWEETED_BY_ME | RETWEETED_TO_ME | RETWEETS_OF_ME
> COMPOSITE ::= MERGE | FILTER
> USER ::= /[a-zA-Z0-9_-]+/
> LIST ::= USER "/" LISTNAME
> LISTNAME ::= /[a-zA-Z0-9_-]+/
> DIRECT-MESSSAGES ::= ":direct-messages"
> DIRECT-MESSSAGES-SENT ::= ":direct-messages-sent"
> FRIENDS ::= ":friends"
> HOME ::= ":home" | "~"
> MENTIONS ::= ":mentions"
> PUBLIC ::= ":public"
> REPLIES ::= ":replies" | "@"
> RETWEETED_BY_ME ::= ":retweeted_by_me"
> RETWEETED_TO_ME ::= ":retweeted_to_me"
> RETWEETS_OF_ME ::= ":retweets_of_me"
> MERGE ::= "(" MERGED_SPECS ")"
> MERGED_SPECS ::= SPEC | SPEC "+" MERGED_SPECS
> FILTER ::= ":filter/" REGEXP "/" SPEC

> 文字列表現時にfilterに与える正規表現内にslash "/"が現れるときは
> backslash "\"でエスケープする必要があります。

> 例えば
> ":filter/ABC/user/mylist" <==> (filter "ABC" (list "user" "mylist"))
> ":filter/ABC\\/user/mylist" <==> (filter "ABC/user" (user "mylist"))
> となります。

> どうでしょうか。

> ---
> 松尾 直志 <t...@mymail.twin.jp>

> ------------------------------------------------------------------------------
> This SF.Net email is sponsored by the Verizon Developer Community
> Take advantage of Verizon's best-in-class app development support
> A streamlined, 14 day to market process makes app distribution fast and easy
> Join now and get one step closer to millions of Verizon customers
> http://p.sf.net/sfu/verizon-dev2dev 
> _______________________________________________
> twmode-users mailing list
> twmode-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/twmode-users

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
twmode-users mailing list
twmode-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/twmode-users

メールによる返信