松尾です。 b21fce6e486d1ff16929ddd15d42675ebd11d158 でtimeline表示の部分更新を導入したため�...@での表示が 更新されなくなっていた問題に対処しました。
http://github.com/cvmat/twittering-mode/tree/auto-redisplay にcommitしてあります。色々試していただけると助かります。 新しい timer 変数 twittering-timer-for-redisplaying を 用意して、この timer で定期的に関数 twittering-redisplay-status-on-buffer が呼び出される 仕組みになっています。 twittering-redisplay-status-on-buffer は *twittering* buffer 内の 'need-to-be-updated property がnon-nilの値を 持つ部分を探して更新します。 更新時には need-to-be-updated property の値をLISPの 関数呼び出しのS式と思って解釈し、その結果の文字列で 該当箇所を置き換えています。 icon 取得を非同期にしておき、定期 redisplay 時に取得済み かどうかを判断して描画するようにすれば icon の非同期更新 にも利用できると思います。 現状、ひとつよく分からない点があって、 「scroll-modeにしておき、*twittering* bufferをC-x b等で 非表示にした状況」で放置しておいて、 再び *twittering* buffer に戻るとカーソル位置のstatusが 元々のものとは違うものになっている場合があります。 *twittering* buffer を表示している場合にはこの現象は 起こらないようです。 また、 windows.el で window-configuration を保持した まま非表示にしている場合も起こらないようです。 ある twittering-timer-for-redisplaying が起動している ときに twittering-timer が起動すると何か問題があるのかも しれません。実際、現状は以下のようになってますが、 (defun twittering-redisplay-status-on-buffer (&optional buffer) (let ((buffer (or buffer (twittering-buffer))) (deactivate-mark deactivate-mark)) (with-current-buffer buffer (save-excursion (twittering-for-each-property-region 'need-to-be-updated (lambda (beg end value) (let* ((func (car value)) (args (cdr value)) (updated-str (apply func args)) (buffer-read-only nil)) (delete-region beg end) (goto-char beg) (insert updated-str))) buffer))))) これのbuffer-read-onlyを束縛する場所をずらして (defun twittering-redisplay-status-on-buffer (&optional buffer) (let ((buffer (or buffer (twittering-buffer))) (deactivate-mark deactivate-mark)) (with-current-buffer buffer (setq buffer-read-only nil) (save-excursion (twittering-for-each-property-region 'need-to-be-updated (lambda (beg end value) (let* ((func (car value)) (args (cdr value)) (updated-str (apply func args))) (delete-region beg end) (goto-char beg) (insert updated-str))) buffer)) (setq buffer-read-only t)))) とすると時折 read-only 関連の警告が表示されます。 --- 松尾 直志 <[email protected]> ------------------------------------------------------------------------------ The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com _______________________________________________ twmode-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/twmode-users
