-
-
Save Cogitri/1c117455b09c33e3bd8ded8ce83733b9 to your computer and use it in GitHub Desktop.
log
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::builder] build; num-workers=8 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::builder] build; num-workers=8 | |
[2019-06-05T21:37:16Z DEBUG gxi] Starting gxi | |
[2019-06-05T21:37:16Z INFO xrl::client] >>> notification: method=client_started, params={} | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=client_started, params=Object({})) | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::sender] execute; count=1 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::sender] execute; count=1 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- spawn; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- spawn; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] shutdown; state=pool::State { lifecycle: Running, num_futures: 1 } | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> transitioned to shutdown | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] shutdown; state=pool::State { lifecycle: Running, num_futures: 1 } | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> transitioned to shutdown | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::builder] build; num-workers=8 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::sender] execute; count=1 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- spawn; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] shutdown; state=pool::State { lifecycle: Running, num_futures: 1 } | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> transitioned to shutdown | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor] adding I/O source: 0 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor] adding I/O source: 0 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x561870594230 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- spawn; idx=6 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "client_started", params: Object({}) } | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "client_started", params: Object({}) }) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] >>> {"method":"client_started","params":{}} | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=40 | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor] adding I/O source: 4194305 | |
[2019-06-05T21:37:16Z TRACE mio::poll] registering with poller | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor::registration] scheduling Write for: 1 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- spawn; idx=6 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
xi-core stderr: [2019-06-05][23:37:16][xi_core][INFO] Logging with fern is set up | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
xi-core stderr: [2019-06-05][23:37:16][xi_core][INFO] Writing logs to: /home/rasmus/.local/share/xi-core/xi-core.log | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=40 | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x56187076bf10 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> task complete | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] task complete; state=pool::State { lifecycle: ShutdownNow, num_futures: 0 } | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> shutting down workers | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] shutting down thread; idx=7 | |
[2019-06-05T21:37:16Z INFO xrl::client] >>> notification: method=modify_user_config, params={"changes":{"autodetect_whitespace":true,"font_face":"Source Code Pro Medium","font_size":12.0,"line_ending":"\n","tab_size":4,"translate_tabs_to_spaces":false,"use_tab_stops":true,"word_wrap":false},"domain":"general"} | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=modify_user_config, params=Object({"changes": Object({"autodetect_whitespace": Bool(true), "font_face": String("Source Code Pro Medium"), "font_size": Number(12.0), "line_ending": String("\n"), "tab_size": Number(4), "translate_tabs_to_spaces": Bool(false), "use_tab_stops": Bool(true), "word_wrap": Bool(false)}), "domain": String("general")})) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] <<< {"method":"available_languages","params":{"languages":[]}} | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "available_languages", params: Object({"languages": Array([])}) }) | |
[2019-06-05T21:37:16Z INFO xrl::frontend] <<< notification: method=available_languages, params={"languages":[]} | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] <<< {"method":"available_themes","params":{"themes":["InspiredGitHub","Solarized (dark)","Solarized (light)","base16-eighties.dark","base16-mocha.dark","base16-ocean.dark","base16-ocean.light"]}} | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "available_themes", params: Object({"themes": Array([String("InspiredGitHub"), String("Solarized (dark)"), String("Solarized (light)"), String("base16-eighties.dark"), String("base16-mocha.dark"), String("base16-ocean.dark"), String("base16-ocean.light")])}) }) | |
[2019-06-05T21:37:16Z INFO xrl::frontend] <<< notification: method=available_themes, params={"themes":["InspiredGitHub","Solarized (dark)","Solarized (light)","base16-eighties.dark","base16-mocha.dark","base16-ocean.dark","base16-ocean.light"]} | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "modify_user_config", params: Object({"changes": Object({"autodetect_whitespace": Bool(true), "font_face": String("Source Code Pro Medium"), "font_size": Number(12.0), "line_ending": String("\n"), "tab_size": Number(4), "translate_tabs_to_spaces": Bool(false), "use_tab_stops": Bool(true), "word_wrap": Bool(false)}), "domain": String("general")}) } | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "modify_user_config", params: Object({"changes": Object({"autodetect_whitespace": Bool(true), "font_face": String("Source Code Pro Medium"), "font_size": Number(12.0), "line_ending": String("\n"), "tab_size": Number(4), "translate_tabs_to_spaces": Bool(false), "use_tab_stops": Bool(true), "word_wrap": Bool(false)}), "domain": String("general")}) }) | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] >>> {"method":"modify_user_config","params":{"changes":{"autodetect_whitespace":true,"font_face":"Source Code Pro Medium","font_size":12.0,"line_ending":"\n","tab_size":4,"translate_tabs_to_spaces":false,"use_tab_stops":true,"word_wrap":false},"domain":"general"}} | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=261 | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z DEBUG gxi::main_win] Theme name: InspiredGitHub | |
[2019-06-05T21:37:16Z DEBUG gxi::main_win] Showing main window | |
[2019-06-05T21:37:16Z DEBUG gxi] Opening new file | |
[2019-06-05T21:37:16Z INFO xrl::client] >>> request : method=new_view, params={"file_path":"/home/rasmus/Projects/gxi/src/editview/src/edit_view.rs"} | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] forwarding request to endpoint (method=new_view, params=Object({"file_path": String("/home/rasmus/Projects/gxi/src/editview/src/edit_view.rs")})) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] sending request: Request { id: 0, method: "new_view", params: Object({"file_path": String("/home/rasmus/Projects/gxi/src/editview/src/edit_view.rs")}) } | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Request(Request { id: 1, method: "new_view", params: Object({"file_path": String("/home/rasmus/Projects/gxi/src/editview/src/edit_view.rs")}) }) | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] >>> {"id":1,"method":"new_view","params":{"file_path":"/home/rasmus/Projects/gxi/src/editview/src/edit_view.rs"}} | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=110 | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] <<< {"id":1,"result":"view-id-1"} | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] handling message from remote peer Response(Response { id: 1, result: Ok(String("view-id-1")) }) | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] forwarding response to the client. | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] <<< {"method":"available_plugins","params":{"plugins":[],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Creating new EditView | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:16Z INFO gxi::main_win] Couldn't get current EditView. This may only mean that you don't have an editing tab open right now. | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "available_plugins", params: Object({"plugins": Array([]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Creating new EditView, 'view-id-1' | |
[2019-06-05T21:37:16Z INFO xrl::frontend] <<< notification: method=available_plugins, params={"plugins":[],"view_id":"view-id-1"} | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] <<< {"method":"config_changed","params":{"changes":{"auto_indent":true,"autodetect_whitespace":true,"font_face":"Source Code Pro Medium","font_size":12.0,"line_ending":"\n","plugin_search_path":[],"save_with_newline":true,"scroll_past_end":false,"surrounding_pairs":[["\"","\""],["'","'"],["{","}"],["[","]"]],"tab_size":4,"translate_tabs_to_spaces":true,"use_tab_stops":true,"word_wrap":false,"wrap_width":0},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "config_changed", params: Object({"changes": Object({"auto_indent": Bool(true), "autodetect_whitespace": Bool(true), "font_face": String("Source Code Pro Medium"), "font_size": Number(12.0), "line_ending": String("\n"), "plugin_search_path": Array([]), "save_with_newline": Bool(true), "scroll_past_end": Bool(false), "surrounding_pairs": Array([Array([String("\""), String("\"")]), Array([String("\'"), String("\'")]), Array([String("{"), String("}")]), Array([String("["), String("]")])]), "tab_size": Number(4), "translate_tabs_to_spaces": Bool(true), "use_tab_stops": Bool(true), "word_wrap": Bool(false), "wrap_width": Number(0)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:16Z INFO xrl::frontend] <<< notification: method=config_changed, params={"changes":{"auto_indent":true,"autodetect_whitespace":true,"font_face":"Source Code Pro Medium","font_size":12.0,"line_ending":"\n","plugin_search_path":[],"save_with_newline":true,"scroll_past_end":false,"surrounding_pairs":[["\"","\""],["'","'"],["{","}"],["[","]"]],"tab_size":4,"translate_tabs_to_spaces":true,"use_tab_stops":true,"word_wrap":false,"wrap_width":0},"view_id":"view-id-1"} | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] <<< {"method":"language_changed","params":{"language_id":"","view_id":"view-id-1"}} | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "language_changed", params: Object({"language_id": String(""), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:16Z INFO xrl::frontend] <<< notification: method=language_changed, params={"language_id":"","view_id":"view-id-1"} | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":1,"payloads":null,"ranges":[[0,0,0,0]],"type":"selection"}],"ops":[{"lines":[{"cursor":[0],"ln":1,"styles":[],"text":"use crate::fonts::Font;\n"},{"ln":2,"styles":[],"text":"use crate::main_state::{MainState, Settings};\n"},{"ln":3,"styles":[],"text":"use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n"},{"ln":4,"styles":[],"text":"use crate::view_item::*;\n"},{"ln":5,"styles":[],"text":"use cairo::Context;\n"},{"ln":6,"styles":[],"text":"use futures::future;\n"},{"ln":7,"styles":[],"text":"use gdk::enums::key;\n"},{"ln":8,"styles":[],"text":"use gdk::*;\n"},{"ln":9,"styles":[],"text":"use gettextrs::gettext;\n"},{"ln":10,"styles":[],"text":"use glib::source;\n"},{"ln":11,"styles":[],"text":"use gtk::{self, *};\n"},{"ln":12,"styles":[],"text":"use log::{debug, trace, warn};\n"}],"n":12,"op":"ins"},{"n":998,"op":"invalidate"},{"n":217,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(1), "payloads": Null, "ranges": Array([Array([Number(0), Number(0), Number(0), Number(0)])]), "type": String("selection")})]), "ops": Array([Object({"lines": Array([Object({"cursor": Array([Number(0)]), "ln": Number(1), "styles": Array([]), "text": String("use crate::fonts::Font;\n")}), Object({"ln": Number(2), "styles": Array([]), "text": String("use crate::main_state::{MainState, Settings};\n")}), Object({"ln": Number(3), "styles": Array([]), "text": String("use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n")}), Object({"ln": Number(4), "styles": Array([]), "text": String("use crate::view_item::*;\n")}), Object({"ln": Number(5), "styles": Array([]), "text": String("use cairo::Context;\n")}), Object({"ln": Number(6), "styles": Array([]), "text": String("use futures::future;\n")}), Object({"ln": Number(7), "styles": Array([]), "text": String("use gdk::enums::key;\n")}), Object({"ln": Number(8), "styles": Array([]), "text": String("use gdk::*;\n")}), Object({"ln": Number(9), "styles": Array([]), "text": String("use gettextrs::gettext;\n")}), Object({"ln": Number(10), "styles": Array([]), "text": String("use glib::source;\n")}), Object({"ln": Number(11), "styles": Array([]), "text": String("use gtk::{self, *};\n")}), Object({"ln": Number(12), "styles": Array([]), "text": String("use log::{debug, trace, warn};\n")})]), "n": Number(12), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(217), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:16Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":1,"payloads":null,"ranges":[[0,0,0,0]],"type":"selection"}],"ops":[{"lines":[{"cursor":[0],"ln":1,"styles":[],"text":"use crate::fonts::Font;\n"},{"ln":2,"styles":[],"text":"use crate::main_state::{MainState, Settings};\n"},{"ln":3,"styles":[],"text":"use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n"},{"ln":4,"styles":[],"text":"use crate::view_item::*;\n"},{"ln":5,"styles":[],"text":"use cairo::Context;\n"},{"ln":6,"styles":[],"text":"use futures::future;\n"},{"ln":7,"styles":[],"text":"use gdk::enums::key;\n"},{"ln":8,"styles":[],"text":"use gdk::*;\n"},{"ln":9,"styles":[],"text":"use gettextrs::gettext;\n"},{"ln":10,"styles":[],"text":"use glib::source;\n"},{"ln":11,"styles":[],"text":"use gtk::{self, *};\n"},{"ln":12,"styles":[],"text":"use log::{debug, trace, warn};\n"}],"n":12,"op":"ins"},{"n":998,"op":"invalidate"},{"n":217,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:16Z DEBUG editview::fonts] Pango font size: Rectangle { x: 0, y: 0, width: 8192, height: 19456 } | |
[2019-06-05T21:37:16Z DEBUG editview::fonts] Font metrics: 8 19 15 4 | |
[2019-06-05T21:37:16Z DEBUG editview::fonts] Pango font size: Rectangle { x: 0, y: 0, width: 10240, height: 21504 } | |
[2019-06-05T21:37:16Z DEBUG editview::fonts] Font metrics: 10 21 16 5 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:16Z TRACE editview::view_item] view-id-1 'Connecting events of EditView' | |
[2019-06-05T21:37:16Z TRACE editview::view_item] Connecting FindReplace events for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling XiEvent: AvailableLanguages(AvailableLanguages { languages: [] }) | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z DEBUG gxi::main_win] Handling 'available_languages' AvailableLanguages { languages: [] } | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] <<< {"method":"scroll_to","params":{"col":0,"line":0,"view_id":"view-id-1"}} | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling XiEvent: AvailableThemes(AvailableThemes { themes: ["InspiredGitHub", "Solarized (dark)", "Solarized (light)", "base16-eighties.dark", "base16-mocha.dark", "base16-ocean.dark", "base16-ocean.light"] }) | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "scroll_to", params: Object({"col": Number(0), "line": Number(0), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:16Z INFO xrl::client] >>> notification: method=set_theme, params={"theme_name":"InspiredGitHub"} | |
[2019-06-05T21:37:16Z INFO xrl::frontend] <<< notification: method=scroll_to, params={"col":0,"line":0,"view_id":"view-id-1"} | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=set_theme, params=Object({"theme_name": String("InspiredGitHub")})) | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling XiEvent: AvailablePlugins(AvailablePlugins { view_id: ViewId(1), plugins: [] }) | |
[2019-06-05T21:37:16Z ERROR gxi::errors] Couldn't find syntect plugin, functionality will be limited! Only found the following plugins: [] | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "set_theme", params: Object({"theme_name": String("InspiredGitHub")}) } | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "set_theme", params: Object({"theme_name": String("InspiredGitHub")}) }) | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] >>> {"method":"set_theme","params":{"theme_name":"InspiredGitHub"}} | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=64 | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:16Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] <<< {"method":"theme_changed","params":{"name":"InspiredGitHub","theme":{"accent":null,"active_guide":{"a":255,"b":179,"g":179,"r":179},"background":{"a":255,"b":255,"g":255,"r":255},"bracket_contents_foreground":{"a":255,"b":92,"g":163,"r":99},"bracket_contents_options":"Underline","brackets_background":null,"brackets_foreground":{"a":255,"b":92,"g":163,"r":99},"brackets_options":"Underline","caret":{"a":255,"b":50,"g":50,"r":50},"find_highlight":{"a":255,"b":199,"g":238,"r":248},"find_highlight_foreground":{"a":255,"b":50,"g":50,"r":50},"foreground":{"a":255,"b":50,"g":50,"r":50},"guide":{"a":255,"b":232,"g":232,"r":232},"gutter":{"a":255,"b":255,"g":255,"r":255},"gutter_foreground":{"a":255,"b":179,"g":179,"r":179},"highlight":null,"highlight_foreground":null,"inactive_selection":null,"inactive_selection_foreground":null,"line_highlight":{"a":255,"b":245,"g":245,"r":245},"minimap_border":null,"misspelling":null,"phantom_css":null,"popup_css":null,"selection":{"a":255,"b":199,"g":238,"r":248},"selection_background":null,"selection_border":{"a":255,"b":255,"g":255,"r":255},"selection_foreground":null,"shadow":null,"stack_guide":{"a":255,"b":232,"g":232,"r":232},"tags_foreground":{"a":255,"b":92,"g":163,"r":99},"tags_options":"Underline"}}} | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "theme_changed", params: Object({"name": String("InspiredGitHub"), "theme": Object({"accent": Null, "active_guide": Object({"a": Number(255), "b": Number(179), "g": Number(179), "r": Number(179)}), "background": Object({"a": Number(255), "b": Number(255), "g": Number(255), "r": Number(255)}), "bracket_contents_foreground": Object({"a": Number(255), "b": Number(92), "g": Number(163), "r": Number(99)}), "bracket_contents_options": String("Underline"), "brackets_background": Null, "brackets_foreground": Object({"a": Number(255), "b": Number(92), "g": Number(163), "r": Number(99)}), "brackets_options": String("Underline"), "caret": Object({"a": Number(255), "b": Number(50), "g": Number(50), "r": Number(50)}), "find_highlight": Object({"a": Number(255), "b": Number(199), "g": Number(238), "r": Number(248)}), "find_highlight_foreground": Object({"a": Number(255), "b": Number(50), "g": Number(50), "r": Number(50)}), "foreground": Object({"a": Number(255), "b": Number(50), "g": Number(50), "r": Number(50)}), "guide": Object({"a": Number(255), "b": Number(232), "g": Number(232), "r": Number(232)}), "gutter": Object({"a": Number(255), "b": Number(255), "g": Number(255), "r": Number(255)}), "gutter_foreground": Object({"a": Number(255), "b": Number(179), "g": Number(179), "r": Number(179)}), "highlight": Null, "highlight_foreground": Null, "inactive_selection": Null, "inactive_selection_foreground": Null, "line_highlight": Object({"a": Number(255), "b": Number(245), "g": Number(245), "r": Number(245)}), "minimap_border": Null, "misspelling": Null, "phantom_css": Null, "popup_css": Null, "selection": Object({"a": Number(255), "b": Number(199), "g": Number(238), "r": Number(248)}), "selection_background": Null, "selection_border": Object({"a": Number(255), "b": Number(255), "g": Number(255), "r": Number(255)}), "selection_foreground": Null, "shadow": Null, "stack_guide": Object({"a": Number(255), "b": Number(232), "g": Number(232), "r": Number(232)}), "tags_foreground": Object({"a": Number(255), "b": Number(92), "g": Number(163), "r": Number(99)}), "tags_options": String("Underline")})}) }) | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling XiEvent: ConfigChanged(ConfigChanged { view_id: ViewId(1), changes: ConfigChanges { font_face: Some("Source Code Pro Medium"), font_size: Some(12.0), line_ending: Some("\n"), plugin_search_path: Some([]), tab_size: Some(4), translate_tabs_to_spaces: Some(true) } }) | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'config_changed' for EditView 'view-id-1': ConfigChanges { font_face: Some("Source Code Pro Medium"), font_size: Some(12.0), line_ending: Some("\n"), plugin_search_path: Some([]), tab_size: Some(4), translate_tabs_to_spaces: Some(true) } | |
[2019-06-05T21:37:16Z DEBUG editview::fonts] Pango font size: Rectangle { x: 0, y: 0, width: 10240, height: 21504 } | |
[2019-06-05T21:37:16Z DEBUG editview::fonts] Font metrics: 10 21 16 5 | |
[2019-06-05T21:37:16Z DEBUG editview::edit_view] Setting edit font to: Source Code Pro Medium | |
[2019-06-05T21:37:16Z DEBUG editview::fonts] Pango font size: Rectangle { x: 0, y: 0, width: 10240, height: 21504 } | |
[2019-06-05T21:37:16Z DEBUG editview::fonts] Font metrics: 10 21 16 5 | |
[2019-06-05T21:37:16Z INFO xrl::frontend] <<< notification: method=theme_changed, params={"name":"InspiredGitHub","theme":{"accent":null,"active_guide":{"a":255,"b":179,"g":179,"r":179},"background":{"a":255,"b":255,"g":255,"r":255},"bracket_contents_foreground":{"a":255,"b":92,"g":163,"r":99},"bracket_contents_options":"Underline","brackets_background":null,"brackets_foreground":{"a":255,"b":92,"g":163,"r":99},"brackets_options":"Underline","caret":{"a":255,"b":50,"g":50,"r":50},"find_highlight":{"a":255,"b":199,"g":238,"r":248},"find_highlight_foreground":{"a":255,"b":50,"g":50,"r":50},"foreground":{"a":255,"b":50,"g":50,"r":50},"guide":{"a":255,"b":232,"g":232,"r":232},"gutter":{"a":255,"b":255,"g":255,"r":255},"gutter_foreground":{"a":255,"b":179,"g":179,"r":179},"highlight":null,"highlight_foreground":null,"inactive_selection":null,"inactive_selection_foreground":null,"line_highlight":{"a":255,"b":245,"g":245,"r":245},"minimap_border":null,"misspelling":null,"phantom_css":null,"popup_css":null,"selection":{"a":255,"b":199,"g":238,"r":248},"selection_background":null,"selection_border":{"a":255,"b":255,"g":255,"r":255},"selection_foreground":null,"shadow":null,"stack_guide":{"a":255,"b":232,"g":232,"r":232},"tags_foreground":{"a":255,"b":92,"g":163,"r":99},"tags_options":"Underline"}} | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling XiEvent: LanguageChanged(LanguageChanged { view_id: ViewId(1), language_id: "" }) | |
[2019-06-05T21:37:16Z DEBUG gxi::main_win] Handling 'language_changed' LanguageChanged { view_id: ViewId(1), language_id: "" } | |
[2019-06-05T21:37:16Z DEBUG editview::edit_view] Language has been changed to '""' | |
[2019-06-05T21:37:16Z WARN editview::edit_view] Couldn't determine what position the following language is in: 'Plain Text' | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":1,"payloads":null,"ranges":[[0,0,0,0]],"type":"selection"}],"ops":[{"lines":[{"cursor":[0],"ln":1,"styles":[],"text":"use crate::fonts::Font;\n"},{"ln":2,"styles":[],"text":"use crate::main_state::{MainState, Settings};\n"},{"ln":3,"styles":[],"text":"use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n"},{"ln":4,"styles":[],"text":"use crate::view_item::*;\n"},{"ln":5,"styles":[],"text":"use cairo::Context;\n"},{"ln":6,"styles":[],"text":"use futures::future;\n"},{"ln":7,"styles":[],"text":"use gdk::enums::key;\n"},{"ln":8,"styles":[],"text":"use gdk::*;\n"},{"ln":9,"styles":[],"text":"use gettextrs::gettext;\n"},{"ln":10,"styles":[],"text":"use glib::source;\n"},{"ln":11,"styles":[],"text":"use gtk::{self, *};\n"},{"ln":12,"styles":[],"text":"use log::{debug, trace, warn};\n"}],"n":12,"op":"ins"},{"n":998,"op":"invalidate"},{"n":217,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Insert, nb_lines: 12, lines: [Line { text: "use crate::fonts::Font;\n", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};\n", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;\n", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;\n", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;\n", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;\n", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;\n", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;\n", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;\n", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};\n", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};\n", cursor: [], styles: [], line_num: Some(12) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 217, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Insert, nb_lines: 12, lines: [Line { text: "use crate::fonts::Font;\n", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};\n", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;\n", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;\n", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;\n", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;\n", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;\n", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;\n", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;\n", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};\n", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};\n", cursor: [], styles: [], line_num: Some(12) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 217, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Insert, nb_lines: 12, lines: [Line { text: "use crate::fonts::Font;\n", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};\n", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;\n", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;\n", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;\n", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;\n", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;\n", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;\n", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;\n", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};\n", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};\n", cursor: [], styles: [], line_num: Some(12) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 217, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:16Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:16Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [], old_invalid_before: 0, old_invalid_after: 0, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:16Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Insert, nb_lines: 12, lines: [Line { text: "use crate::fonts::Font;\n", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};\n", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;\n", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;\n", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;\n", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;\n", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;\n", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;\n", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;\n", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};\n", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};\n", cursor: [], styles: [], line_num: Some(12) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 217, lines: [] }] | |
[2019-06-05T21:37:16Z INFO xrl::cache] inserting 12 lines | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(1), "payloads": Null, "ranges": Array([Array([Number(0), Number(0), Number(0), Number(0)])]), "type": String("selection")})]), "ops": Array([Object({"lines": Array([Object({"cursor": Array([Number(0)]), "ln": Number(1), "styles": Array([]), "text": String("use crate::fonts::Font;\n")}), Object({"ln": Number(2), "styles": Array([]), "text": String("use crate::main_state::{MainState, Settings};\n")}), Object({"ln": Number(3), "styles": Array([]), "text": String("use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n")}), Object({"ln": Number(4), "styles": Array([]), "text": String("use crate::view_item::*;\n")}), Object({"ln": Number(5), "styles": Array([]), "text": String("use cairo::Context;\n")}), Object({"ln": Number(6), "styles": Array([]), "text": String("use futures::future;\n")}), Object({"ln": Number(7), "styles": Array([]), "text": String("use gdk::enums::key;\n")}), Object({"ln": Number(8), "styles": Array([]), "text": String("use gdk::*;\n")}), Object({"ln": Number(9), "styles": Array([]), "text": String("use gettextrs::gettext;\n")}), Object({"ln": Number(10), "styles": Array([]), "text": String("use glib::source;\n")}), Object({"ln": Number(11), "styles": Array([]), "text": String("use gtk::{self, *};\n")}), Object({"ln": Number(12), "styles": Array([]), "text": String("use log::{debug, trace, warn};\n")})]), "n": Number(12), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(217), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:16Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:16Z INFO xrl::cache] invalidating 217 lines | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling XiEvent: ScrollTo(ScrollTo { line: 0, column: 0, view_id: ViewId(1) }) | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling 'scroll_to' ScrollTo { line: 0, column: 0, view_id: ViewId(1) } | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'scroll_to' for EditView 'view-id-1': l: 0 c: 0 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Horizontal scrolling to min: 0; max: 0 | |
[2019-06-05T21:37:16Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":1,"payloads":null,"ranges":[[0,0,0,0]],"type":"selection"}],"ops":[{"lines":[{"cursor":[0],"ln":1,"styles":[],"text":"use crate::fonts::Font;\n"},{"ln":2,"styles":[],"text":"use crate::main_state::{MainState, Settings};\n"},{"ln":3,"styles":[],"text":"use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n"},{"ln":4,"styles":[],"text":"use crate::view_item::*;\n"},{"ln":5,"styles":[],"text":"use cairo::Context;\n"},{"ln":6,"styles":[],"text":"use futures::future;\n"},{"ln":7,"styles":[],"text":"use gdk::enums::key;\n"},{"ln":8,"styles":[],"text":"use gdk::*;\n"},{"ln":9,"styles":[],"text":"use gettextrs::gettext;\n"},{"ln":10,"styles":[],"text":"use glib::source;\n"},{"ln":11,"styles":[],"text":"use gtk::{self, *};\n"},{"ln":12,"styles":[],"text":"use log::{debug, trace, warn};\n"}],"n":12,"op":"ins"},{"n":998,"op":"invalidate"},{"n":217,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling XiEvent: ThemeChanged(ThemeChanged { name: "InspiredGitHub", theme: ThemeSettings { foreground: Some(Color { r: 50, g: 50, b: 50, a: 255 }), background: Some(Color { r: 255, g: 255, b: 255, a: 255 }), caret: Some(Color { r: 50, g: 50, b: 50, a: 255 }), line_highlight: Some(Color { r: 245, g: 245, b: 245, a: 255 }), misspelling: None, minimap_border: None, accent: None, popup_css: None, phantom_css: None, bracket_contents_foreground: Some(Color { r: 99, g: 163, b: 92, a: 255 }), bracket_contents_options: Some(Underline), brackets_foreground: Some(Color { r: 99, g: 163, b: 92, a: 255 }), brackets_background: None, brackets_options: Some(Underline), tags_foreground: Some(Color { r: 99, g: 163, b: 92, a: 255 }), tags_options: Some(Underline), highlight: None, find_highlight: Some(Color { r: 248, g: 238, b: 199, a: 255 }), find_highlight_foreground: Some(Color { r: 50, g: 50, b: 50, a: 255 }), gutter: Some(Color { r: 255, g: 255, b: 255, a: 255 }), gutter_foreground: Some(Color { r: 179, g: 179, b: 179, a: 255 }), selection: Some(Color { r: 248, g: 238, b: 199, a: 255 }), selection_foreground: None, selection_background: None, selection_border: Some(Color { r: 255, g: 255, b: 255, a: 255 }), inactive_selection: None, inactive_selection_foreground: None, guide: Some(Color { r: 232, g: 232, b: 232, a: 255 }), active_guide: Some(Color { r: 179, g: 179, b: 179, a: 255 }), stack_guide: Some(Color { r: 232, g: 232, b: 232, a: 255 }), highlight_foreground: None, shadow: None } }) | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Insert, nb_lines: 12, lines: [Line { text: "use crate::fonts::Font;\n", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};\n", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;\n", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;\n", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;\n", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;\n", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;\n", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;\n", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;\n", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};\n", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};\n", cursor: [], styles: [], line_num: Some(12) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 217, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Insert, nb_lines: 12, lines: [Line { text: "use crate::fonts::Font;\n", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};\n", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;\n", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;\n", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;\n", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;\n", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;\n", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;\n", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;\n", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};\n", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};\n", cursor: [], styles: [], line_num: Some(12) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 217, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Insert, nb_lines: 12, lines: [Line { text: "use crate::fonts::Font;\n", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};\n", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;\n", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;\n", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;\n", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;\n", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;\n", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;\n", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;\n", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};\n", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};\n", cursor: [], styles: [], line_num: Some(12) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 217, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }], old_invalid_before: 0, old_invalid_after: 1215, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:16Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Insert, nb_lines: 12, lines: [Line { text: "use crate::fonts::Font;\n", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};\n", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};\n", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;\n", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;\n", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;\n", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;\n", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;\n", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;\n", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;\n", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};\n", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};\n", cursor: [], styles: [], line_num: Some(12) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 217, lines: [] }] | |
[2019-06-05T21:37:16Z INFO xrl::cache] inserting 12 lines | |
[2019-06-05T21:37:16Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:16Z INFO xrl::cache] invalidating 217 lines | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:16Z DEBUG editview::view_item] Size changed to: width=2096 height=1043 | |
[2019-06-05T21:37:16Z DEBUG editview::edit_view] Allocating DrawingArea size: Width: 2096, Height: 1043 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z DEBUG editview::edit_view] Updating visible scroll region 0 50 | |
[2019-06-05T21:37:16Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[0,50],"view_id":"view-id-1"} | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(0), Number(50)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Resizing EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z INFO xrl::client] >>> notification: method=edit, params={"method":"resize","params":{"height":1043,"width":2096},"view_id":"view-id-1"} | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("resize"), "params": Object({"height": Number(1043), "width": Number(2096)}), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(0), Number(50)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(0), Number(50)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[0,50],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("resize"), "params": Object({"height": Number(1043), "width": Number(2096)}), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("resize"), "params": Object({"height": Number(1043), "width": Number(2096)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"resize","params":{"height":1043,"width":2096},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=192 | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:16Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:16Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":1,"payloads":null,"ranges":[[0,0,0,0]],"type":"selection"}],"ops":[{"ln":1,"n":12,"op":"copy"},{"lines":[{"ln":13,"styles":[],"text":"use pango::{self, ContextExt, LayoutExt, *};\n"},{"ln":14,"styles":[],"text":"use pangocairo::functions::*;\n"},{"ln":15,"styles":[],"text":"use std::cell::RefCell;\n"},{"ln":16,"styles":[],"text":"use std::cmp::{max, min};\n"},{"ln":17,"styles":[],"text":"use std::rc::Rc;\n"},{"ln":18,"styles":[],"text":"use std::u32;\n"},{"ln":19,"styles":[],"text":"use xrl::StyleDef as StyleSpan;\n"},{"ln":20,"styles":[],"text":"use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};\n"},{"ln":21,"styles":[],"text":"\n"},{"ln":22,"styles":[],"text":"/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.\n"},{"ln":23,"styles":[],"text":"pub struct TextSize {\n"},{"ln":24,"styles":[],"text":" /// The height of the entire document\n"},{"ln":25,"styles":[],"text":" height: f64,\n"},{"ln":26,"styles":[],"text":" /// The width of the entire document\n"},{"ln":27,"styles":[],"text":" width: f64,\n"},{"ln":28,"styles":[],"text":" /// If the height of the document is contained within the edit_area (if it's smaller)\n"},{"ln":29,"styles":[],"text":" contained_height: bool,\n"},{"ln":30,"styles":[],"text":" /// If the width of the document is contained within the edit_area (if it's smaller)\n"},{"ln":31,"styles":[],"text":" contained_width: bool,\n"},{"ln":32,"styles":[],"text":"}\n"},{"ln":33,"styles":[],"text":"\n"},{"ln":34,"styles":[],"text":"/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.\n"},{"ln":35,"styles":[],"text":"pub struct EditView {\n"},{"ln":36,"styles":[],"text":" core: Client,\n"},{"ln":37,"styles":[],"text":" main_state: Rc<RefCell<MainState>>,\n"},{"ln":38,"styles":[],"text":" pub view_id: ViewId,\n"},{"ln":39,"styles":[],"text":" pub file_name: Option<String>,\n"},{"ln":40,"styles":[],"text":" pub pristine: bool,\n"},{"ln":41,"styles":[],"text":" pub root_widget: Grid,\n"},{"ln":42,"styles":[],"text":" pub top_bar: TopBar,\n"},{"ln":43,"styles":[],"text":" pub view_item: ViewItem,\n"},{"ln":44,"styles":[],"text":" line_cache: LineCache,\n"},{"ln":45,"styles":[],"text":" pub(crate) find_replace: FindReplace,\n"},{"ln":46,"styles":[],"text":" edit_font: Font,\n"},{"ln":47,"styles":[],"text":" interface_font: Font,\n"},{"ln":48,"styles":[],"text":" im_context: IMContextSimple,\n"},{"ln":49,"styles":[],"text":"}\n"},{"ln":50,"styles":[],"text":"\n"},{"ln":51,"styles":[],"text":"impl EditView {\n"},{"ln":52,"styles":[],"text":" /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,\n"}],"n":40,"op":"ins"},{"n":998,"op":"invalidate"},{"n":177,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(1), "payloads": Null, "ranges": Array([Array([Number(0), Number(0), Number(0), Number(0)])]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(12), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(13), "styles": Array([]), "text": String("use pango::{self, ContextExt, LayoutExt, *};\n")}), Object({"ln": Number(14), "styles": Array([]), "text": String("use pangocairo::functions::*;\n")}), Object({"ln": Number(15), "styles": Array([]), "text": String("use std::cell::RefCell;\n")}), Object({"ln": Number(16), "styles": Array([]), "text": String("use std::cmp::{max, min};\n")}), Object({"ln": Number(17), "styles": Array([]), "text": String("use std::rc::Rc;\n")}), Object({"ln": Number(18), "styles": Array([]), "text": String("use std::u32;\n")}), Object({"ln": Number(19), "styles": Array([]), "text": String("use xrl::StyleDef as StyleSpan;\n")}), Object({"ln": Number(20), "styles": Array([]), "text": String("use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};\n")}), Object({"ln": Number(21), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(22), "styles": Array([]), "text": String("/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.\n")}), Object({"ln": Number(23), "styles": Array([]), "text": String("pub struct TextSize {\n")}), Object({"ln": Number(24), "styles": Array([]), "text": String(" /// The height of the entire document\n")}), Object({"ln": Number(25), "styles": Array([]), "text": String(" height: f64,\n")}), Object({"ln": Number(26), "styles": Array([]), "text": String(" /// The width of the entire document\n")}), Object({"ln": Number(27), "styles": Array([]), "text": String(" width: f64,\n")}), Object({"ln": Number(28), "styles": Array([]), "text": String(" /// If the height of the document is contained within the edit_area (if it\'s smaller)\n")}), Object({"ln": Number(29), "styles": Array([]), "text": String(" contained_height: bool,\n")}), Object({"ln": Number(30), "styles": Array([]), "text": String(" /// If the width of the document is contained within the edit_area (if it\'s smaller)\n")}), Object({"ln": Number(31), "styles": Array([]), "text": String(" contained_width: bool,\n")}), Object({"ln": Number(32), "styles": Array([]), "text": String("}\n")}), Object({"ln": Number(33), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(34), "styles": Array([]), "text": String("/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.\n")}), Object({"ln": Number(35), "styles": Array([]), "text": String("pub struct EditView {\n")}), Object({"ln": Number(36), "styles": Array([]), "text": String(" core: Client,\n")}), Object({"ln": Number(37), "styles": Array([]), "text": String(" main_state: Rc<RefCell<MainState>>,\n")}), Object({"ln": Number(38), "styles": Array([]), "text": String(" pub view_id: ViewId,\n")}), Object({"ln": Number(39), "styles": Array([]), "text": String(" pub file_name: Option<String>,\n")}), Object({"ln": Number(40), "styles": Array([]), "text": String(" pub pristine: bool,\n")}), Object({"ln": Number(41), "styles": Array([]), "text": String(" pub root_widget: Grid,\n")}), Object({"ln": Number(42), "styles": Array([]), "text": String(" pub top_bar: TopBar,\n")}), Object({"ln": Number(43), "styles": Array([]), "text": String(" pub view_item: ViewItem,\n")}), Object({"ln": Number(44), "styles": Array([]), "text": String(" line_cache: LineCache,\n")}), Object({"ln": Number(45), "styles": Array([]), "text": String(" pub(crate) find_replace: FindReplace,\n")}), Object({"ln": Number(46), "styles": Array([]), "text": String(" edit_font: Font,\n")}), Object({"ln": Number(47), "styles": Array([]), "text": String(" interface_font: Font,\n")}), Object({"ln": Number(48), "styles": Array([]), "text": String(" im_context: IMContextSimple,\n")}), Object({"ln": Number(49), "styles": Array([]), "text": String("}\n")}), Object({"ln": Number(50), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(51), "styles": Array([]), "text": String("impl EditView {\n")}), Object({"ln": Number(52), "styles": Array([]), "text": String(" /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,\n")})]), "n": Number(40), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(177), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:16Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":1,"payloads":null,"ranges":[[0,0,0,0]],"type":"selection"}],"ops":[{"ln":1,"n":12,"op":"copy"},{"lines":[{"ln":13,"styles":[],"text":"use pango::{self, ContextExt, LayoutExt, *};\n"},{"ln":14,"styles":[],"text":"use pangocairo::functions::*;\n"},{"ln":15,"styles":[],"text":"use std::cell::RefCell;\n"},{"ln":16,"styles":[],"text":"use std::cmp::{max, min};\n"},{"ln":17,"styles":[],"text":"use std::rc::Rc;\n"},{"ln":18,"styles":[],"text":"use std::u32;\n"},{"ln":19,"styles":[],"text":"use xrl::StyleDef as StyleSpan;\n"},{"ln":20,"styles":[],"text":"use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};\n"},{"ln":21,"styles":[],"text":"\n"},{"ln":22,"styles":[],"text":"/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.\n"},{"ln":23,"styles":[],"text":"pub struct TextSize {\n"},{"ln":24,"styles":[],"text":" /// The height of the entire document\n"},{"ln":25,"styles":[],"text":" height: f64,\n"},{"ln":26,"styles":[],"text":" /// The width of the entire document\n"},{"ln":27,"styles":[],"text":" width: f64,\n"},{"ln":28,"styles":[],"text":" /// If the height of the document is contained within the edit_area (if it's smaller)\n"},{"ln":29,"styles":[],"text":" contained_height: bool,\n"},{"ln":30,"styles":[],"text":" /// If the width of the document is contained within the edit_area (if it's smaller)\n"},{"ln":31,"styles":[],"text":" contained_width: bool,\n"},{"ln":32,"styles":[],"text":"}\n"},{"ln":33,"styles":[],"text":"\n"},{"ln":34,"styles":[],"text":"/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.\n"},{"ln":35,"styles":[],"text":"pub struct EditView {\n"},{"ln":36,"styles":[],"text":" core: Client,\n"},{"ln":37,"styles":[],"text":" main_state: Rc<RefCell<MainState>>,\n"},{"ln":38,"styles":[],"text":" pub view_id: ViewId,\n"},{"ln":39,"styles":[],"text":" pub file_name: Option<String>,\n"},{"ln":40,"styles":[],"text":" pub pristine: bool,\n"},{"ln":41,"styles":[],"text":" pub root_widget: Grid,\n"},{"ln":42,"styles":[],"text":" pub top_bar: TopBar,\n"},{"ln":43,"styles":[],"text":" pub view_item: ViewItem,\n"},{"ln":44,"styles":[],"text":" line_cache: LineCache,\n"},{"ln":45,"styles":[],"text":" pub(crate) find_replace: FindReplace,\n"},{"ln":46,"styles":[],"text":" edit_font: Font,\n"},{"ln":47,"styles":[],"text":" interface_font: Font,\n"},{"ln":48,"styles":[],"text":" im_context: IMContextSimple,\n"},{"ln":49,"styles":[],"text":"}\n"},{"ln":50,"styles":[],"text":"\n"},{"ln":51,"styles":[],"text":"impl EditView {\n"},{"ln":52,"styles":[],"text":" /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,\n"}],"n":40,"op":"ins"},{"n":998,"op":"invalidate"},{"n":177,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 12, lines: [] }, Operation { operation_type: Insert, nb_lines: 40, lines: [Line { text: "use pango::{self, ContextExt, LayoutExt, *};\n", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;\n", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;\n", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};\n", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;\n", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;\n", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;\n", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};\n", cursor: [], styles: [], line_num: Some(20) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.\n", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {\n", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document\n", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,\n", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document\n", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,\n", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)\n", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,\n", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)\n", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,\n", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}\n", cursor: [], styles: [], line_num: Some(32) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.\n", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {\n", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,\n", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,\n", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,\n", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,\n", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,\n", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,\n", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,\n", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,\n", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,\n", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,\n", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,\n", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,\n", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,\n", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}\n", cursor: [], styles: [], line_num: Some(49) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {\n", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,\n", cursor: [], styles: [], line_num: Some(52) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 177, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:16Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 12, lines: [] }, Operation { operation_type: Insert, nb_lines: 40, lines: [Line { text: "use pango::{self, ContextExt, LayoutExt, *};\n", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;\n", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;\n", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};\n", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;\n", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;\n", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;\n", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};\n", cursor: [], styles: [], line_num: Some(20) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.\n", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {\n", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document\n", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,\n", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document\n", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,\n", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)\n", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,\n", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)\n", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,\n", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}\n", cursor: [], styles: [], line_num: Some(32) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.\n", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {\n", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,\n", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,\n", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,\n", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,\n", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,\n", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,\n", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,\n", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,\n", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,\n", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,\n", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,\n", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,\n", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,\n", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}\n", cursor: [], styles: [], line_num: Some(49) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {\n", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,\n", cursor: [], styles: [], line_num: Some(52) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 177, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 12, lines: [] }, Operation { operation_type: Insert, nb_lines: 40, lines: [Line { text: "use pango::{self, ContextExt, LayoutExt, *};\n", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;\n", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;\n", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};\n", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;\n", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;\n", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;\n", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};\n", cursor: [], styles: [], line_num: Some(20) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.\n", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {\n", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document\n", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,\n", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document\n", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,\n", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)\n", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,\n", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)\n", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,\n", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}\n", cursor: [], styles: [], line_num: Some(32) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.\n", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {\n", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,\n", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,\n", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,\n", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,\n", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,\n", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,\n", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,\n", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,\n", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,\n", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,\n", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,\n", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,\n", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,\n", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}\n", cursor: [], styles: [], line_num: Some(49) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {\n", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,\n", cursor: [], styles: [], line_num: Some(52) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 177, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:16Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:16Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }], old_invalid_before: 0, old_invalid_after: 1215, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:16Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 12, lines: [] }, Operation { operation_type: Insert, nb_lines: 40, lines: [Line { text: "use pango::{self, ContextExt, LayoutExt, *};\n", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;\n", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;\n", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};\n", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;\n", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;\n", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;\n", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};\n", cursor: [], styles: [], line_num: Some(20) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.\n", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {\n", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document\n", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,\n", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document\n", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,\n", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)\n", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,\n", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)\n", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,\n", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}\n", cursor: [], styles: [], line_num: Some(32) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.\n", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {\n", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,\n", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,\n", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,\n", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,\n", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,\n", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,\n", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,\n", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,\n", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,\n", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,\n", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,\n", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,\n", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,\n", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}\n", cursor: [], styles: [], line_num: Some(49) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {\n", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,\n", cursor: [], styles: [], line_num: Some(52) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 177, lines: [] }] | |
[2019-06-05T21:37:16Z INFO xrl::cache] copying 12 lines | |
[2019-06-05T21:37:16Z INFO xrl::cache] inserting 40 lines | |
[2019-06-05T21:37:16Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:16Z INFO xrl::cache] invalidating 177 lines | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:16Z DEBUG editview::view_item] Size changed to: width=1996 height=991 | |
[2019-06-05T21:37:16Z DEBUG editview::edit_view] Allocating DrawingArea size: Width: 1996, Height: 991 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z DEBUG editview::edit_view] Updating visible scroll region 0 48 | |
[2019-06-05T21:37:16Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[0,48],"view_id":"view-id-1"} | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Resizing EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:16Z INFO xrl::client] >>> notification: method=edit, params={"method":"resize","params":{"height":991,"width":1996},"view_id":"view-id-1"} | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("resize"), "params": Object({"height": Number(991), "width": Number(1996)}), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:16Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[0,48],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("resize"), "params": Object({"height": Number(991), "width": Number(1996)}), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:16Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("resize"), "params": Object({"height": Number(991), "width": Number(1996)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"resize","params":{"height":991,"width":1996},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=191 | |
[2019-06-05T21:37:16Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:16Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:16Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:16Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:16Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:16Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:17Z DEBUG editview::view_item] Size changed to: width=1996 height=991 | |
[2019-06-05T21:37:17Z DEBUG editview::edit_view] Allocating DrawingArea size: Width: 1996, Height: 991 | |
[2019-06-05T21:37:17Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:17Z DEBUG editview::edit_view] Updating visible scroll region 0 48 | |
[2019-06-05T21:37:17Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[0,48],"view_id":"view-id-1"} | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:17Z TRACE editview::edit_view] Resizing EditView 'view-id-1' | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:17Z INFO xrl::client] >>> notification: method=edit, params={"method":"resize","params":{"height":991,"width":1996},"view_id":"view-id-1"} | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("resize"), "params": Object({"height": Number(991), "width": Number(1996)}), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:17Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:17Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:17Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[0,48],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("resize"), "params": Object({"height": Number(991), "width": Number(1996)}), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:17Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("resize"), "params": Object({"height": Number(991), "width": Number(1996)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"resize","params":{"height":991,"width":1996},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:17Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:17Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=191 | |
[2019-06-05T21:37:17Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:17Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:17Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:17Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:17Z DEBUG editview::view_item] Size changed to: width=1996 height=991 | |
[2019-06-05T21:37:17Z DEBUG editview::edit_view] Allocating DrawingArea size: Width: 1996, Height: 991 | |
[2019-06-05T21:37:17Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:17Z DEBUG editview::edit_view] Updating visible scroll region 0 48 | |
[2019-06-05T21:37:17Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[0,48],"view_id":"view-id-1"} | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:17Z TRACE editview::edit_view] Resizing EditView 'view-id-1' | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:17Z INFO xrl::client] >>> notification: method=edit, params={"method":"resize","params":{"height":991,"width":1996},"view_id":"view-id-1"} | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("resize"), "params": Object({"height": Number(991), "width": Number(1996)}), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:17Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:17Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:17Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[0,48],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("resize"), "params": Object({"height": Number(991), "width": Number(1996)}), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:17Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("resize"), "params": Object({"height": Number(991), "width": Number(1996)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"resize","params":{"height":991,"width":1996},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:17Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:17Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=191 | |
[2019-06-05T21:37:17Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:17Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:17Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:17Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:17Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:17Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 0/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:17Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 0 48 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[0,48],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[0,48],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=85 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 0 48 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[0,48],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(0), Number(48)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[0,48],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=85 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 121.69627733521568/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 5 53 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[5,53],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(5), Number(53)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(5), Number(53)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(5), Number(53)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[5,53],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=85 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":3,"op":"copy"},{"ln":4,"n":49,"op":"copy"},{"lines":[{"ln":53,"styles":[],"text":" /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)\n"},{"ln":54,"styles":[],"text":" pub fn new(\n"},{"ln":55,"styles":[],"text":" main_state: &Rc<RefCell<MainState>>,\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":174,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 228.2562017669667/25772; horizontal adjustment: 0/2096 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(3), "op": String("copy")}), Object({"ln": Number(4), "n": Number(49), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(53), "styles": Array([]), "text": String(" /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)\n")}), Object({"ln": Number(54), "styles": Array([]), "text": String(" pub fn new(\n")}), Object({"ln": Number(55), "styles": Array([]), "text": String(" main_state: &Rc<RefCell<MainState>>,\n")})]), "n": Number(3), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(174), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":3,"op":"copy"},{"ln":4,"n":49,"op":"copy"},{"lines":[{"ln":53,"styles":[],"text":" /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)\n"},{"ln":54,"styles":[],"text":" pub fn new(\n"},{"ln":55,"styles":[],"text":" main_state: &Rc<RefCell<MainState>>,\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":174,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 3, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)\n", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(\n", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,\n", cursor: [], styles: [], line_num: Some(55) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 174, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 3, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)\n", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(\n", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,\n", cursor: [], styles: [], line_num: Some(55) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 174, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 3, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)\n", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(\n", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,\n", cursor: [], styles: [], line_num: Some(55) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 174, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }], old_invalid_before: 0, old_invalid_after: 1175, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 3, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)\n", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(\n", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,\n", cursor: [], styles: [], line_num: Some(55) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 174, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 3 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 49 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 3 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 174 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 10 59 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[10,59],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(10), Number(59)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(10), Number(59)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(10), Number(59)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[10,59],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=86 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":8,"op":"copy"},{"ln":9,"n":47,"op":"copy"},{"lines":[{"ln":56,"styles":[],"text":" core: &Client,\n"},{"ln":57,"styles":[],"text":" // The FindReplace dialog is relative to this\n"},{"ln":58,"styles":[],"text":" hamburger_button: &MenuButton,\n"},{"ln":59,"styles":[],"text":" file_name: Option<String>,\n"},{"ln":60,"styles":[],"text":" view_id: ViewId,\n"},{"ln":61,"styles":[],"text":" parent: &ApplicationWindow,\n"}],"n":6,"op":"ins"},{"n":998,"op":"invalidate"},{"n":168,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(8), "op": String("copy")}), Object({"ln": Number(9), "n": Number(47), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(56), "styles": Array([]), "text": String(" core: &Client,\n")}), Object({"ln": Number(57), "styles": Array([]), "text": String(" // The FindReplace dialog is relative to this\n")}), Object({"ln": Number(58), "styles": Array([]), "text": String(" hamburger_button: &MenuButton,\n")}), Object({"ln": Number(59), "styles": Array([]), "text": String(" file_name: Option<String>,\n")}), Object({"ln": Number(60), "styles": Array([]), "text": String(" view_id: ViewId,\n")}), Object({"ln": Number(61), "styles": Array([]), "text": String(" parent: &ApplicationWindow,\n")})]), "n": Number(6), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(168), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":8,"op":"copy"},{"ln":9,"n":47,"op":"copy"},{"lines":[{"ln":56,"styles":[],"text":" core: &Client,\n"},{"ln":57,"styles":[],"text":" // The FindReplace dialog is relative to this\n"},{"ln":58,"styles":[],"text":" hamburger_button: &MenuButton,\n"},{"ln":59,"styles":[],"text":" file_name: Option<String>,\n"},{"ln":60,"styles":[],"text":" view_id: ViewId,\n"},{"ln":61,"styles":[],"text":" parent: &ApplicationWindow,\n"}],"n":6,"op":"ins"},{"n":998,"op":"invalidate"},{"n":168,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 8, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 6, lines: [Line { text: " core: &Client,\n", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this\n", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,\n", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,\n", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,\n", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,\n", cursor: [], styles: [], line_num: Some(61) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 168, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 8, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 6, lines: [Line { text: " core: &Client,\n", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this\n", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,\n", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,\n", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,\n", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,\n", cursor: [], styles: [], line_num: Some(61) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 168, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 8, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 6, lines: [Line { text: " core: &Client,\n", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this\n", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,\n", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,\n", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,\n", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,\n", cursor: [], styles: [], line_num: Some(61) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 168, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }], old_invalid_before: 0, old_invalid_after: 1172, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 8, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 6, lines: [Line { text: " core: &Client,\n", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this\n", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,\n", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,\n", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,\n", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,\n", cursor: [], styles: [], line_num: Some(61) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 168, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 8 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 47 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 6 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 168 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 329.97249326930046/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 15 63 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[15,63],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(15), Number(63)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(15), Number(63)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(15), Number(63)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[15,63],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=86 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 421.3960647991297/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":13,"op":"copy"},{"ln":14,"n":48,"op":"copy"},{"lines":[{"ln":62,"styles":[],"text":" ) -> Rc<RefCell<Self>> {\n"},{"ln":63,"styles":[],"text":" trace!(\"{}, '{}'\", gettext(\"Creating new EditView\"), view_id);\n"},{"ln":64,"styles":[],"text":" let view_item = ViewItem::new();\n"},{"ln":65,"styles":[],"text":" let find_replace = FindReplace::new(&hamburger_button);\n"}],"n":4,"op":"ins"},{"n":998,"op":"invalidate"},{"n":164,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(13), "op": String("copy")}), Object({"ln": Number(14), "n": Number(48), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(62), "styles": Array([]), "text": String(" ) -> Rc<RefCell<Self>> {\n")}), Object({"ln": Number(63), "styles": Array([]), "text": String(" trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);\n")}), Object({"ln": Number(64), "styles": Array([]), "text": String(" let view_item = ViewItem::new();\n")}), Object({"ln": Number(65), "styles": Array([]), "text": String(" let find_replace = FindReplace::new(&hamburger_button);\n")})]), "n": Number(4), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(164), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":13,"op":"copy"},{"ln":14,"n":48,"op":"copy"},{"lines":[{"ln":62,"styles":[],"text":" ) -> Rc<RefCell<Self>> {\n"},{"ln":63,"styles":[],"text":" trace!(\"{}, '{}'\", gettext(\"Creating new EditView\"), view_id);\n"},{"ln":64,"styles":[],"text":" let view_item = ViewItem::new();\n"},{"ln":65,"styles":[],"text":" let find_replace = FindReplace::new(&hamburger_button);\n"}],"n":4,"op":"ins"},{"n":998,"op":"invalidate"},{"n":164,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 13, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " ) -> Rc<RefCell<Self>> {\n", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);\n", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();\n", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);\n", cursor: [], styles: [], line_num: Some(65) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 164, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 13, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " ) -> Rc<RefCell<Self>> {\n", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);\n", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();\n", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);\n", cursor: [], styles: [], line_num: Some(65) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 164, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 13, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " ) -> Rc<RefCell<Self>> {\n", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);\n", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();\n", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);\n", cursor: [], styles: [], line_num: Some(65) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 164, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }], old_invalid_before: 0, old_invalid_after: 1166, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 13, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " ) -> Rc<RefCell<Self>> {\n", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);\n", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();\n", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);\n", cursor: [], styles: [], line_num: Some(65) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 164, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 13 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 48 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 4 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 164 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 421.3960647991297/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 20 68 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[20,68],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(20), Number(68)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(20), Number(68)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(20), Number(68)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[20,68],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=86 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":18,"op":"copy"},{"ln":19,"n":47,"op":"copy"},{"lines":[{"ln":66,"styles":[],"text":" let pango_ctx = view_item.get_pango_ctx();\n"},{"ln":67,"styles":[],"text":" let im_context = IMContextSimple::new();\n"},{"ln":68,"styles":[],"text":" let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);\n"},{"ln":69,"styles":[],"text":"\n"},{"ln":70,"styles":[],"text":" let edit_view = Rc::new(RefCell::new(Self {\n"}],"n":5,"op":"ins"},{"n":998,"op":"invalidate"},{"n":159,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(18), "op": String("copy")}), Object({"ln": Number(19), "n": Number(47), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(66), "styles": Array([]), "text": String(" let pango_ctx = view_item.get_pango_ctx();\n")}), Object({"ln": Number(67), "styles": Array([]), "text": String(" let im_context = IMContextSimple::new();\n")}), Object({"ln": Number(68), "styles": Array([]), "text": String(" let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);\n")}), Object({"ln": Number(69), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(70), "styles": Array([]), "text": String(" let edit_view = Rc::new(RefCell::new(Self {\n")})]), "n": Number(5), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(159), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":18,"op":"copy"},{"ln":19,"n":47,"op":"copy"},{"lines":[{"ln":66,"styles":[],"text":" let pango_ctx = view_item.get_pango_ctx();\n"},{"ln":67,"styles":[],"text":" let im_context = IMContextSimple::new();\n"},{"ln":68,"styles":[],"text":" let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);\n"},{"ln":69,"styles":[],"text":"\n"},{"ln":70,"styles":[],"text":" let edit_view = Rc::new(RefCell::new(Self {\n"}],"n":5,"op":"ins"},{"n":998,"op":"invalidate"},{"n":159,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 501.316008122943/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 18, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: " let pango_ctx = view_item.get_pango_ctx();\n", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();\n", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);\n", cursor: [], styles: [], line_num: Some(68) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {\n", cursor: [], styles: [], line_num: Some(70) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 159, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 18, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: " let pango_ctx = view_item.get_pango_ctx();\n", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();\n", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);\n", cursor: [], styles: [], line_num: Some(68) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {\n", cursor: [], styles: [], line_num: Some(70) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 159, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 18, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: " let pango_ctx = view_item.get_pango_ctx();\n", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();\n", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);\n", cursor: [], styles: [], line_num: Some(68) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {\n", cursor: [], styles: [], line_num: Some(70) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 159, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }], old_invalid_before: 0, old_invalid_after: 1162, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 18, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: " let pango_ctx = view_item.get_pango_ctx();\n", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();\n", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);\n", cursor: [], styles: [], line_num: Some(68) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {\n", cursor: [], styles: [], line_num: Some(70) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 159, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 18 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 47 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 5 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 159 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 23 72 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[23,72],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(23), Number(72)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(23), Number(72)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(23), Number(72)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[23,72],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=86 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":21,"op":"copy"},{"ln":22,"n":49,"op":"copy"},{"lines":[{"ln":71,"styles":[],"text":" core: core.clone(),\n"},{"ln":72,"styles":[],"text":" main_state: main_state.clone(),\n"},{"ln":73,"styles":[],"text":" file_name,\n"},{"ln":74,"styles":[],"text":" pristine: true,\n"}],"n":4,"op":"ins"},{"n":998,"op":"invalidate"},{"n":155,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(21), "op": String("copy")}), Object({"ln": Number(22), "n": Number(49), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(71), "styles": Array([]), "text": String(" core: core.clone(),\n")}), Object({"ln": Number(72), "styles": Array([]), "text": String(" main_state: main_state.clone(),\n")}), Object({"ln": Number(73), "styles": Array([]), "text": String(" file_name,\n")}), Object({"ln": Number(74), "styles": Array([]), "text": String(" pristine: true,\n")})]), "n": Number(4), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(155), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":21,"op":"copy"},{"ln":22,"n":49,"op":"copy"},{"lines":[{"ln":71,"styles":[],"text":" core: core.clone(),\n"},{"ln":72,"styles":[],"text":" main_state: main_state.clone(),\n"},{"ln":73,"styles":[],"text":" file_name,\n"},{"ln":74,"styles":[],"text":" pristine: true,\n"}],"n":4,"op":"ins"},{"n":998,"op":"invalidate"},{"n":155,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 21, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " core: core.clone(),\n", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),\n", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,\n", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,\n", cursor: [], styles: [], line_num: Some(74) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 155, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 21, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " core: core.clone(),\n", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),\n", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,\n", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,\n", cursor: [], styles: [], line_num: Some(74) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 155, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 21, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " core: core.clone(),\n", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),\n", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,\n", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,\n", cursor: [], styles: [], line_num: Some(74) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 155, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }], old_invalid_before: 0, old_invalid_after: 1157, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 21, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " core: core.clone(),\n", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),\n", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,\n", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,\n", cursor: [], styles: [], line_num: Some(74) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 155, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 21 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 49 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 4 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 155 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 563.6777820808973/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 26 75 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[26,75],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(26), Number(75)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(26), Number(75)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(26), Number(75)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[26,75],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=86 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":24,"op":"copy"},{"ln":25,"n":50,"op":"copy"},{"lines":[{"ln":75,"styles":[],"text":" view_id,\n"},{"ln":76,"styles":[],"text":" root_widget: view_item.root_box.clone(),\n"},{"ln":77,"styles":[],"text":" top_bar: TopBar::new(),\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":152,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(24), "op": String("copy")}), Object({"ln": Number(25), "n": Number(50), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(75), "styles": Array([]), "text": String(" view_id,\n")}), Object({"ln": Number(76), "styles": Array([]), "text": String(" root_widget: view_item.root_box.clone(),\n")}), Object({"ln": Number(77), "styles": Array([]), "text": String(" top_bar: TopBar::new(),\n")})]), "n": Number(3), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(152), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":24,"op":"copy"},{"ln":25,"n":50,"op":"copy"},{"lines":[{"ln":75,"styles":[],"text":" view_id,\n"},{"ln":76,"styles":[],"text":" root_widget: view_item.root_box.clone(),\n"},{"ln":77,"styles":[],"text":" top_bar: TopBar::new(),\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":152,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 24, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " view_id,\n", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),\n", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),\n", cursor: [], styles: [], line_num: Some(77) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 152, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 24, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " view_id,\n", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),\n", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),\n", cursor: [], styles: [], line_num: Some(77) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 152, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 24, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " view_id,\n", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),\n", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),\n", cursor: [], styles: [], line_num: Some(77) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 152, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }], old_invalid_before: 0, old_invalid_after: 1153, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 24, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " view_id,\n", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),\n", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),\n", cursor: [], styles: [], line_num: Some(77) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 152, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 24 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 50 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 3 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 152 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 609.6922949034183/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 29 77 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[29,77],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(29), Number(77)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(29), Number(77)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(29), Number(77)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[29,77],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=86 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":27,"op":"copy"},{"ln":28,"n":50,"op":"copy"},{"lines":[{"ln":78,"styles":[],"text":" view_item: view_item.clone(),\n"},{"ln":79,"styles":[],"text":" line_cache: LineCache::default(),\n"}],"n":2,"op":"ins"},{"n":998,"op":"invalidate"},{"n":150,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(27), "op": String("copy")}), Object({"ln": Number(28), "n": Number(50), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(78), "styles": Array([]), "text": String(" view_item: view_item.clone(),\n")}), Object({"ln": Number(79), "styles": Array([]), "text": String(" line_cache: LineCache::default(),\n")})]), "n": Number(2), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(150), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":27,"op":"copy"},{"ln":28,"n":50,"op":"copy"},{"lines":[{"ln":78,"styles":[],"text":" view_item: view_item.clone(),\n"},{"ln":79,"styles":[],"text":" line_cache: LineCache::default(),\n"}],"n":2,"op":"ins"},{"n":998,"op":"invalidate"},{"n":150,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 27, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " view_item: view_item.clone(),\n", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),\n", cursor: [], styles: [], line_num: Some(79) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 150, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 27, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " view_item: view_item.clone(),\n", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),\n", cursor: [], styles: [], line_num: Some(79) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 150, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 27, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " view_item: view_item.clone(),\n", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),\n", cursor: [], styles: [], line_num: Some(79) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 150, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }], old_invalid_before: 0, old_invalid_after: 1150, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 27, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " view_item: view_item.clone(),\n", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),\n", cursor: [], styles: [], line_num: Some(79) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 150, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 27 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 50 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 2 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 150 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 646.6249959854034/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 30 78 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[30,78],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(30), Number(78)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(30), Number(78)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(30), Number(78)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[30,78],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=86 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":28,"op":"copy"},{"ln":29,"n":51,"op":"copy"},{"lines":[{"ln":80,"styles":[],"text":" edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),\n"}],"n":1,"op":"ins"},{"n":998,"op":"invalidate"},{"n":149,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(28), "op": String("copy")}), Object({"ln": Number(29), "n": Number(51), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(80), "styles": Array([]), "text": String(" edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),\n")})]), "n": Number(1), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(149), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":28,"op":"copy"},{"ln":29,"n":51,"op":"copy"},{"lines":[{"ln":80,"styles":[],"text":" edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),\n"}],"n":1,"op":"ins"},{"n":998,"op":"invalidate"},{"n":149,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 692.6395088079245/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 28, lines: [] }, Operation { operation_type: Copy_, nb_lines: 51, lines: [] }, Operation { operation_type: Insert, nb_lines: 1, lines: [Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),\n", cursor: [], styles: [], line_num: Some(80) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 149, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 28, lines: [] }, Operation { operation_type: Copy_, nb_lines: 51, lines: [] }, Operation { operation_type: Insert, nb_lines: 1, lines: [Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),\n", cursor: [], styles: [], line_num: Some(80) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 149, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 28, lines: [] }, Operation { operation_type: Copy_, nb_lines: 51, lines: [] }, Operation { operation_type: Insert, nb_lines: 1, lines: [Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),\n", cursor: [], styles: [], line_num: Some(80) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 149, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }], old_invalid_before: 0, old_invalid_after: 1148, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 28, lines: [] }, Operation { operation_type: Copy_, nb_lines: 51, lines: [] }, Operation { operation_type: Insert, nb_lines: 1, lines: [Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),\n", cursor: [], styles: [], line_num: Some(80) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 149, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 28 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 51 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 1 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 149 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 32 81 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[32,81],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(32), Number(81)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(32), Number(81)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(32), Number(81)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[32,81],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=86 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":30,"op":"copy"},{"ln":31,"n":50,"op":"copy"},{"lines":[{"ln":81,"styles":[],"text":" interface_font,\n"},{"ln":82,"styles":[],"text":" find_replace: find_replace.clone(),\n"},{"ln":83,"styles":[],"text":" im_context: im_context.clone(),\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":146,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(30), "op": String("copy")}), Object({"ln": Number(31), "n": Number(50), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(81), "styles": Array([]), "text": String(" interface_font,\n")}), Object({"ln": Number(82), "styles": Array([]), "text": String(" find_replace: find_replace.clone(),\n")}), Object({"ln": Number(83), "styles": Array([]), "text": String(" im_context: im_context.clone(),\n")})]), "n": Number(3), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(146), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":30,"op":"copy"},{"ln":31,"n":50,"op":"copy"},{"lines":[{"ln":81,"styles":[],"text":" interface_font,\n"},{"ln":82,"styles":[],"text":" find_replace: find_replace.clone(),\n"},{"ln":83,"styles":[],"text":" im_context: im_context.clone(),\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":146,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 30, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " interface_font,\n", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),\n", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),\n", cursor: [], styles: [], line_num: Some(83) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 146, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 30, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " interface_font,\n", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),\n", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),\n", cursor: [], styles: [], line_num: Some(83) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 146, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 30, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " interface_font,\n", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),\n", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),\n", cursor: [], styles: [], line_num: Some(83) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 146, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }], old_invalid_before: 0, old_invalid_after: 1147, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 30, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " interface_font,\n", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),\n", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),\n", cursor: [], styles: [], line_num: Some(83) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 146, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 30 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 50 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 3 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 146 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 747.7358333725243/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 35 83 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[35,83],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(35), Number(83)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(35), Number(83)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(35), Number(83)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[35,83],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=86 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":33,"op":"copy"},{"ln":34,"n":50,"op":"copy"},{"lines":[{"ln":84,"styles":[],"text":" }));\n"},{"ln":85,"styles":[],"text":"\n"}],"n":2,"op":"ins"},{"n":998,"op":"invalidate"},{"n":144,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(33), "op": String("copy")}), Object({"ln": Number(34), "n": Number(50), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(84), "styles": Array([]), "text": String(" }));\n")}), Object({"ln": Number(85), "styles": Array([]), "text": String("\n")})]), "n": Number(2), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(144), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":33,"op":"copy"},{"ln":34,"n":50,"op":"copy"},{"lines":[{"ln":84,"styles":[],"text":" }));\n"},{"ln":85,"styles":[],"text":"\n"}],"n":2,"op":"ins"},{"n":998,"op":"invalidate"},{"n":144,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 33, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " }));\n", cursor: [], styles: [], line_num: Some(84) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(85) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 144, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 33, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " }));\n", cursor: [], styles: [], line_num: Some(84) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(85) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 144, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 33, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " }));\n", cursor: [], styles: [], line_num: Some(84) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(85) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 144, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }], old_invalid_before: 0, old_invalid_after: 1144, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 33, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " }));\n", cursor: [], styles: [], line_num: Some(84) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(85) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 144, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 33 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 50 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 2 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 144 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 803.437612052337/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 38 86 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[38,86],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(38), Number(86)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(38), Number(86)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(38), Number(86)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[38,86],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=86 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":36,"op":"copy"},{"ln":37,"n":49,"op":"copy"},{"lines":[{"ln":86,"styles":[],"text":" edit_view.borrow_mut().update_title();\n"},{"ln":87,"styles":[],"text":"\n"},{"ln":88,"styles":[],"text":" view_item.connect_events(&edit_view);\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":141,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(36), "op": String("copy")}), Object({"ln": Number(37), "n": Number(49), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(86), "styles": Array([]), "text": String(" edit_view.borrow_mut().update_title();\n")}), Object({"ln": Number(87), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(88), "styles": Array([]), "text": String(" view_item.connect_events(&edit_view);\n")})]), "n": Number(3), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(141), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":36,"op":"copy"},{"ln":37,"n":49,"op":"copy"},{"lines":[{"ln":86,"styles":[],"text":" edit_view.borrow_mut().update_title();\n"},{"ln":87,"styles":[],"text":"\n"},{"ln":88,"styles":[],"text":" view_item.connect_events(&edit_view);\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":141,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 36, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " edit_view.borrow_mut().update_title();\n", cursor: [], styles: [], line_num: Some(86) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);\n", cursor: [], styles: [], line_num: Some(88) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 141, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 36, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " edit_view.borrow_mut().update_title();\n", cursor: [], styles: [], line_num: Some(86) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);\n", cursor: [], styles: [], line_num: Some(88) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 141, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 36, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " edit_view.borrow_mut().update_title();\n", cursor: [], styles: [], line_num: Some(86) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);\n", cursor: [], styles: [], line_num: Some(88) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 141, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }], old_invalid_before: 0, old_invalid_after: 1142, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 36, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " edit_view.borrow_mut().update_title();\n", cursor: [], styles: [], line_num: Some(86) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);\n", cursor: [], styles: [], line_num: Some(88) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 141, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 36 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 49 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 3 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 141 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 859.1393907321498/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 40 89 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[40,89],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(40), Number(89)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(40), Number(89)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(40), Number(89)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[40,89],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=86 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":38,"op":"copy"},{"ln":39,"n":50,"op":"copy"},{"lines":[{"ln":89,"styles":[],"text":" find_replace.connect_events(&edit_view);\n"},{"ln":90,"styles":[],"text":" EditView::connect_im_events(&edit_view, &im_context);\n"},{"ln":91,"styles":[],"text":" //edit_view.borrow().connect_gschema(&gschema);\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":138,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(38), "op": String("copy")}), Object({"ln": Number(39), "n": Number(50), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(89), "styles": Array([]), "text": String(" find_replace.connect_events(&edit_view);\n")}), Object({"ln": Number(90), "styles": Array([]), "text": String(" EditView::connect_im_events(&edit_view, &im_context);\n")}), Object({"ln": Number(91), "styles": Array([]), "text": String(" //edit_view.borrow().connect_gschema(&gschema);\n")})]), "n": Number(3), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(138), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":38,"op":"copy"},{"ln":39,"n":50,"op":"copy"},{"lines":[{"ln":89,"styles":[],"text":" find_replace.connect_events(&edit_view);\n"},{"ln":90,"styles":[],"text":" EditView::connect_im_events(&edit_view, &im_context);\n"},{"ln":91,"styles":[],"text":" //edit_view.borrow().connect_gschema(&gschema);\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":138,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 38, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " find_replace.connect_events(&edit_view);\n", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);\n", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);\n", cursor: [], styles: [], line_num: Some(91) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 138, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 38, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " find_replace.connect_events(&edit_view);\n", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);\n", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);\n", cursor: [], styles: [], line_num: Some(91) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 138, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 38, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " find_replace.connect_events(&edit_view);\n", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);\n", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);\n", cursor: [], styles: [], line_num: Some(91) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 138, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }], old_invalid_before: 0, old_invalid_after: 1139, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 38, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " find_replace.connect_events(&edit_view);\n", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);\n", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);\n", cursor: [], styles: [], line_num: Some(91) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 138, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 38 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 50 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 3 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 138 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 920.8957105748912/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 43 92 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[43,92],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(43), Number(92)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(43), Number(92)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(43), Number(92)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[43,92],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=86 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":41,"op":"copy"},{"ln":42,"n":50,"op":"copy"},{"lines":[{"ln":92,"styles":[],"text":"\n"},{"ln":93,"styles":[],"text":" im_context.set_client_window(parent.get_window().as_ref());\n"},{"ln":94,"styles":[],"text":"\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":135,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1003.2374703626416/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(41), "op": String("copy")}), Object({"ln": Number(42), "n": Number(50), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(92), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(93), "styles": Array([]), "text": String(" im_context.set_client_window(parent.get_window().as_ref());\n")}), Object({"ln": Number(94), "styles": Array([]), "text": String("\n")})]), "n": Number(3), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(135), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":41,"op":"copy"},{"ln":42,"n":50,"op":"copy"},{"lines":[{"ln":92,"styles":[],"text":"\n"},{"ln":93,"styles":[],"text":" im_context.set_client_window(parent.get_window().as_ref());\n"},{"ln":94,"styles":[],"text":"\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":135,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 41, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: "\n", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());\n", cursor: [], styles: [], line_num: Some(93) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(94) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 135, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 41, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: "\n", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());\n", cursor: [], styles: [], line_num: Some(93) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(94) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 135, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 41, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: "\n", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());\n", cursor: [], styles: [], line_num: Some(93) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(94) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 135, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }], old_invalid_before: 0, old_invalid_after: 1136, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 41, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: "\n", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());\n", cursor: [], styles: [], line_num: Some(93) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(94) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 135, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 41 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 50 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 3 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 135 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 47 95 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[47,95],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(47), Number(95)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(47), Number(95)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(47), Number(95)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[47,95],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=86 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":45,"op":"copy"},{"ln":46,"n":49,"op":"copy"},{"lines":[{"ln":95,"styles":[],"text":" edit_view\n"},{"ln":96,"styles":[],"text":" }\n"},{"ln":97,"styles":[],"text":"\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":132,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(45), "op": String("copy")}), Object({"ln": Number(46), "n": Number(49), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(95), "styles": Array([]), "text": String(" edit_view\n")}), Object({"ln": Number(96), "styles": Array([]), "text": String(" }\n")}), Object({"ln": Number(97), "styles": Array([]), "text": String("\n")})]), "n": Number(3), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(132), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":45,"op":"copy"},{"ln":46,"n":49,"op":"copy"},{"lines":[{"ln":95,"styles":[],"text":" edit_view\n"},{"ln":96,"styles":[],"text":" }\n"},{"ln":97,"styles":[],"text":"\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":132,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 45, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " edit_view\n", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(96) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(97) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 132, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 45, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " edit_view\n", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(96) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(97) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 132, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 45, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " edit_view\n", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(96) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(97) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 132, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }], old_invalid_before: 0, old_invalid_after: 1133, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 45, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " edit_view\n", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(96) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(97) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 132, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 45 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 49 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 3 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 132 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1092.8446795437465/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 52 100 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[52,100],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(52), Number(100)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z DEBUG editview::view_item] Size changed to: width=1988 height=991 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Allocating DrawingArea size: Width: 1988, Height: 991 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 56 104 | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[56,104],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(56), Number(104)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Resizing EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(52), Number(100)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"resize","params":{"height":991,"width":1988},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(52), Number(100)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("resize"), "params": Object({"height": Number(991), "width": Number(1988)}), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[52,100],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(56), Number(104)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(56), Number(104)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[56,104],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("resize"), "params": Object({"height": Number(991), "width": Number(1988)}), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("resize"), "params": Object({"height": Number(991), "width": Number(1988)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"resize","params":{"height":991,"width":1988},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=280 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":50,"op":"copy"},{"ln":51,"n":47,"op":"copy"},{"lines":[{"ln":98,"styles":[],"text":" fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {\n"},{"ln":99,"styles":[],"text":" im_context.connect_commit(enclose!((edit_view) move |_, text| {\n"},{"ln":100,"styles":[],"text":" let ev = edit_view.borrow();\n"},{"ln":101,"styles":[],"text":" ev.core.insert(ev.view_id, text);\n"},{"ln":102,"styles":[],"text":" }));\n"}],"n":5,"op":"ins"},{"n":998,"op":"invalidate"},{"n":127,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1184.8737051903315/25772; horizontal adjustment: 0/1996 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(50), "op": String("copy")}), Object({"ln": Number(51), "n": Number(47), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(98), "styles": Array([]), "text": String(" fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {\n")}), Object({"ln": Number(99), "styles": Array([]), "text": String(" im_context.connect_commit(enclose!((edit_view) move |_, text| {\n")}), Object({"ln": Number(100), "styles": Array([]), "text": String(" let ev = edit_view.borrow();\n")}), Object({"ln": Number(101), "styles": Array([]), "text": String(" ev.core.insert(ev.view_id, text);\n")}), Object({"ln": Number(102), "styles": Array([]), "text": String(" }));\n")})]), "n": Number(5), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(127), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":50,"op":"copy"},{"ln":51,"n":47,"op":"copy"},{"lines":[{"ln":98,"styles":[],"text":" fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {\n"},{"ln":99,"styles":[],"text":" im_context.connect_commit(enclose!((edit_view) move |_, text| {\n"},{"ln":100,"styles":[],"text":" let ev = edit_view.borrow();\n"},{"ln":101,"styles":[],"text":" ev.core.insert(ev.view_id, text);\n"},{"ln":102,"styles":[],"text":" }));\n"}],"n":5,"op":"ins"},{"n":998,"op":"invalidate"},{"n":127,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":54,"op":"copy"},{"ln":55,"n":48,"op":"copy"},{"lines":[{"ln":103,"styles":[],"text":" }\n"},{"ln":104,"styles":[],"text":"\n"},{"ln":105,"styles":[],"text":" fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {\n"},{"ln":106,"styles":[],"text":" Font::new(\n"}],"n":4,"op":"ins"},{"n":998,"op":"invalidate"},{"n":123,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(54), "op": String("copy")}), Object({"ln": Number(55), "n": Number(48), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(103), "styles": Array([]), "text": String(" }\n")}), Object({"ln": Number(104), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(105), "styles": Array([]), "text": String(" fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {\n")}), Object({"ln": Number(106), "styles": Array([]), "text": String(" Font::new(\n")})]), "n": Number(4), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(123), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":54,"op":"copy"},{"ln":55,"n":48,"op":"copy"},{"lines":[{"ln":103,"styles":[],"text":" }\n"},{"ln":104,"styles":[],"text":"\n"},{"ln":105,"styles":[],"text":" fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {\n"},{"ln":106,"styles":[],"text":" Font::new(\n"}],"n":4,"op":"ins"},{"n":998,"op":"invalidate"},{"n":123,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {\n", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {\n", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();\n", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);\n", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));\n", cursor: [], styles: [], line_num: Some(102) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 127, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {\n", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {\n", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();\n", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);\n", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));\n", cursor: [], styles: [], line_num: Some(102) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 127, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {\n", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {\n", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();\n", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);\n", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));\n", cursor: [], styles: [], line_num: Some(102) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 127, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }], old_invalid_before: 0, old_invalid_after: 1130, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {\n", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {\n", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();\n", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);\n", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));\n", cursor: [], styles: [], line_num: Some(102) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 127, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 50 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 47 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 5 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 127 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 54, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " }\n", cursor: [], styles: [], line_num: Some(103) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {\n", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(\n", cursor: [], styles: [], line_num: Some(106) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 123, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 54, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " }\n", cursor: [], styles: [], line_num: Some(103) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {\n", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(\n", cursor: [], styles: [], line_num: Some(106) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 123, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 54, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " }\n", cursor: [], styles: [], line_num: Some(103) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {\n", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(\n", cursor: [], styles: [], line_num: Some(106) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 123, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }], old_invalid_before: 0, old_invalid_after: 1125, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 54, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " }\n", cursor: [], styles: [], line_num: Some(103) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {\n", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(\n", cursor: [], styles: [], line_num: Some(106) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 123, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 54 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 48 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 4 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 123 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 56 104 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[56,104],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(56), Number(104)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(56), Number(104)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(56), Number(104)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[56,104],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1273.8754602546808/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 60 108 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[60,108],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(60), Number(108)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(60), Number(108)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(60), Number(108)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[60,108],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1361.0608529718486/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":58,"op":"copy"},{"ln":59,"n":48,"op":"copy"},{"lines":[{"ln":107,"styles":[],"text":" &pango_ctx,\n"},{"ln":108,"styles":[],"text":" FontDescription::from_string(&settings.interface_font),\n"},{"ln":109,"styles":[],"text":" )\n"},{"ln":110,"styles":[],"text":" }\n"}],"n":4,"op":"ins"},{"n":998,"op":"invalidate"},{"n":119,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(58), "op": String("copy")}), Object({"ln": Number(59), "n": Number(48), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(107), "styles": Array([]), "text": String(" &pango_ctx,\n")}), Object({"ln": Number(108), "styles": Array([]), "text": String(" FontDescription::from_string(&settings.interface_font),\n")}), Object({"ln": Number(109), "styles": Array([]), "text": String(" )\n")}), Object({"ln": Number(110), "styles": Array([]), "text": String(" }\n")})]), "n": Number(4), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(119), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":58,"op":"copy"},{"ln":59,"n":48,"op":"copy"},{"lines":[{"ln":107,"styles":[],"text":" &pango_ctx,\n"},{"ln":108,"styles":[],"text":" FontDescription::from_string(&settings.interface_font),\n"},{"ln":109,"styles":[],"text":" )\n"},{"ln":110,"styles":[],"text":" }\n"}],"n":4,"op":"ins"},{"n":998,"op":"invalidate"},{"n":119,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 58, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " &pango_ctx,\n", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),\n", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )\n", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(110) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 119, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 58, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " &pango_ctx,\n", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),\n", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )\n", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(110) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 119, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 58, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " &pango_ctx,\n", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),\n", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )\n", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(110) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 119, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }], old_invalid_before: 0, old_invalid_after: 1121, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 58, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " &pango_ctx,\n", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),\n", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )\n", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(110) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 119, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 58 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 48 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 4 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 119 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 64 113 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[64,113],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(64), Number(113)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(64), Number(113)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(64), Number(113)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[64,113],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":62,"op":"copy"},{"ln":63,"n":48,"op":"copy"},{"lines":[{"ln":111,"styles":[],"text":"\n"},{"ln":112,"styles":[],"text":" fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {\n"},{"ln":113,"styles":[],"text":" Font::new(pango_ctx, FontDescription::from_string(&font))\n"},{"ln":114,"styles":[],"text":" }\n"},{"ln":115,"styles":[],"text":"}\n"}],"n":5,"op":"ins"},{"n":998,"op":"invalidate"},{"n":114,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(62), "op": String("copy")}), Object({"ln": Number(63), "n": Number(48), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(111), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(112), "styles": Array([]), "text": String(" fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {\n")}), Object({"ln": Number(113), "styles": Array([]), "text": String(" Font::new(pango_ctx, FontDescription::from_string(&font))\n")}), Object({"ln": Number(114), "styles": Array([]), "text": String(" }\n")}), Object({"ln": Number(115), "styles": Array([]), "text": String("}\n")})]), "n": Number(5), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(114), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":62,"op":"copy"},{"ln":63,"n":48,"op":"copy"},{"lines":[{"ln":111,"styles":[],"text":"\n"},{"ln":112,"styles":[],"text":" fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {\n"},{"ln":113,"styles":[],"text":" Font::new(pango_ctx, FontDescription::from_string(&font))\n"},{"ln":114,"styles":[],"text":" }\n"},{"ln":115,"styles":[],"text":"}\n"}],"n":5,"op":"ins"},{"n":998,"op":"invalidate"},{"n":114,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 62, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: "\n", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {\n", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))\n", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}\n", cursor: [], styles: [], line_num: Some(115) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 114, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 62, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: "\n", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {\n", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))\n", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}\n", cursor: [], styles: [], line_num: Some(115) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 114, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 62, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: "\n", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {\n", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))\n", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}\n", cursor: [], styles: [], line_num: Some(115) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 114, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }], old_invalid_before: 0, old_invalid_after: 1117, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 62, lines: [] }, Operation { operation_type: Copy_, nb_lines: 48, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: "\n", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {\n", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))\n", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}\n", cursor: [], styles: [], line_num: Some(115) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 114, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 62 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 48 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 5 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 114 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1438.5589798317246/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 68 116 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[68,116],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(68), Number(116)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(68), Number(116)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(68), Number(116)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[68,116],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":66,"op":"copy"},{"ln":67,"n":49,"op":"copy"},{"lines":[{"ln":116,"styles":[],"text":"\n"},{"ln":117,"styles":[],"text":"impl EditView {\n"},{"ln":118,"styles":[],"text":" /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":111,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1506.3698408343091/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(66), "op": String("copy")}), Object({"ln": Number(67), "n": Number(49), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(116), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(117), "styles": Array([]), "text": String("impl EditView {\n")}), Object({"ln": Number(118), "styles": Array([]), "text": String(" /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)\n")})]), "n": Number(3), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(111), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":66,"op":"copy"},{"ln":67,"n":49,"op":"copy"},{"lines":[{"ln":116,"styles":[],"text":"\n"},{"ln":117,"styles":[],"text":"impl EditView {\n"},{"ln":118,"styles":[],"text":" /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":111,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 66, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: "\n", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {\n", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)\n", cursor: [], styles: [], line_num: Some(118) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 111, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 66, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: "\n", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {\n", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)\n", cursor: [], styles: [], line_num: Some(118) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 111, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 66, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: "\n", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {\n", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)\n", cursor: [], styles: [], line_num: Some(118) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 111, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }], old_invalid_before: 0, old_invalid_after: 1112, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 66, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: "\n", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {\n", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)\n", cursor: [], styles: [], line_num: Some(118) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 111, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 66 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 49 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 3 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 111 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 71 119 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[71,119],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(71), Number(119)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(71), Number(119)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(71), Number(119)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[71,119],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":69,"op":"copy"},{"ln":70,"n":49,"op":"copy"},{"lines":[{"ln":119,"styles":[],"text":" pub fn set_file(&mut self, file_name: &str) {\n"},{"ln":120,"styles":[],"text":" trace!(\n"},{"ln":121,"styles":[],"text":" \"{} 'FindReplace' {} '{}'\",\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":108,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(69), "op": String("copy")}), Object({"ln": Number(70), "n": Number(49), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(119), "styles": Array([]), "text": String(" pub fn set_file(&mut self, file_name: &str) {\n")}), Object({"ln": Number(120), "styles": Array([]), "text": String(" trace!(\n")}), Object({"ln": Number(121), "styles": Array([]), "text": String(" \"{} \'FindReplace\' {} \'{}\'\",\n")})]), "n": Number(3), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(108), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":69,"op":"copy"},{"ln":70,"n":49,"op":"copy"},{"lines":[{"ln":119,"styles":[],"text":" pub fn set_file(&mut self, file_name: &str) {\n"},{"ln":120,"styles":[],"text":" trace!(\n"},{"ln":121,"styles":[],"text":" \"{} 'FindReplace' {} '{}'\",\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":108,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 69, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " pub fn set_file(&mut self, file_name: &str) {\n", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(\n", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",\n", cursor: [], styles: [], line_num: Some(121) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 108, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 69, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " pub fn set_file(&mut self, file_name: &str) {\n", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(\n", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",\n", cursor: [], styles: [], line_num: Some(121) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 108, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 69, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " pub fn set_file(&mut self, file_name: &str) {\n", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(\n", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",\n", cursor: [], styles: [], line_num: Some(121) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 108, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }], old_invalid_before: 0, old_invalid_after: 1109, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 69, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " pub fn set_file(&mut self, file_name: &str) {\n", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(\n", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",\n", cursor: [], styles: [], line_num: Some(121) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 108, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 69 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 49 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 3 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 108 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1566.915252443539/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 74 122 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[74,122],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(74), Number(122)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(74), Number(122)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(74), Number(122)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[74,122],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1630.487934631919/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":72,"op":"copy"},{"ln":73,"n":49,"op":"copy"},{"lines":[{"ln":122,"styles":[],"text":" gettext(\"Connecting\"),\n"},{"ln":123,"styles":[],"text":" gettext(\"events for EditView\"),\n"},{"ln":124,"styles":[],"text":" self.view_id\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":105,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(72), "op": String("copy")}), Object({"ln": Number(73), "n": Number(49), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(122), "styles": Array([]), "text": String(" gettext(\"Connecting\"),\n")}), Object({"ln": Number(123), "styles": Array([]), "text": String(" gettext(\"events for EditView\"),\n")}), Object({"ln": Number(124), "styles": Array([]), "text": String(" self.view_id\n")})]), "n": Number(3), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(105), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":72,"op":"copy"},{"ln":73,"n":49,"op":"copy"},{"lines":[{"ln":122,"styles":[],"text":" gettext(\"Connecting\"),\n"},{"ln":123,"styles":[],"text":" gettext(\"events for EditView\"),\n"},{"ln":124,"styles":[],"text":" self.view_id\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":105,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 72, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " gettext(\"Connecting\"),\n", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),\n", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id\n", cursor: [], styles: [], line_num: Some(124) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 105, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 72, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " gettext(\"Connecting\"),\n", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),\n", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id\n", cursor: [], styles: [], line_num: Some(124) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 105, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 72, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " gettext(\"Connecting\"),\n", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),\n", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id\n", cursor: [], styles: [], line_num: Some(124) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 105, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }, Line { text: " pub fn set_file(&mut self, file_name: &str) {", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",", cursor: [], styles: [], line_num: Some(121) }], old_invalid_before: 0, old_invalid_after: 1106, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 72, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " gettext(\"Connecting\"),\n", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),\n", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id\n", cursor: [], styles: [], line_num: Some(124) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 105, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 72 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 49 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 3 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 105 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 77 125 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[77,125],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(77), Number(125)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(77), Number(125)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(77), Number(125)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[77,125],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":75,"op":"copy"},{"ln":76,"n":49,"op":"copy"},{"lines":[{"ln":125,"styles":[],"text":" );\n"},{"ln":126,"styles":[],"text":" self.file_name = Some(file_name.to_string());\n"},{"ln":127,"styles":[],"text":" self.update_title();\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":102,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(75), "op": String("copy")}), Object({"ln": Number(76), "n": Number(49), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(125), "styles": Array([]), "text": String(" );\n")}), Object({"ln": Number(126), "styles": Array([]), "text": String(" self.file_name = Some(file_name.to_string());\n")}), Object({"ln": Number(127), "styles": Array([]), "text": String(" self.update_title();\n")})]), "n": Number(3), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(102), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":75,"op":"copy"},{"ln":76,"n":49,"op":"copy"},{"lines":[{"ln":125,"styles":[],"text":" );\n"},{"ln":126,"styles":[],"text":" self.file_name = Some(file_name.to_string());\n"},{"ln":127,"styles":[],"text":" self.update_title();\n"}],"n":3,"op":"ins"},{"n":998,"op":"invalidate"},{"n":102,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 75, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " );\n", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());\n", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();\n", cursor: [], styles: [], line_num: Some(127) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 102, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 75, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " );\n", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());\n", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();\n", cursor: [], styles: [], line_num: Some(127) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 102, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 75, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " );\n", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());\n", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();\n", cursor: [], styles: [], line_num: Some(127) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 102, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }, Line { text: " pub fn set_file(&mut self, file_name: &str) {", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",", cursor: [], styles: [], line_num: Some(121) }, Line { text: " gettext(\"Connecting\"),", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id", cursor: [], styles: [], line_num: Some(124) }], old_invalid_before: 0, old_invalid_after: 1103, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 75, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 3, lines: [Line { text: " );\n", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());\n", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();\n", cursor: [], styles: [], line_num: Some(127) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 102, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 75 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 49 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 3 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 102 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1700.7206120984406/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 80 129 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[80,129],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(80), Number(129)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(80), Number(129)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(80), Number(129)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[80,129],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":78,"op":"copy"},{"ln":79,"n":49,"op":"copy"},{"lines":[{"ln":128,"styles":[],"text":" }\n"},{"ln":129,"styles":[],"text":"\n"},{"ln":130,"styles":[],"text":" /// Update the title of the EditView to the currently set file_name\n"},{"ln":131,"styles":[],"text":" fn update_title(&self) {\n"}],"n":4,"op":"ins"},{"n":998,"op":"invalidate"},{"n":98,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(78), "op": String("copy")}), Object({"ln": Number(79), "n": Number(49), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(128), "styles": Array([]), "text": String(" }\n")}), Object({"ln": Number(129), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(130), "styles": Array([]), "text": String(" /// Update the title of the EditView to the currently set file_name\n")}), Object({"ln": Number(131), "styles": Array([]), "text": String(" fn update_title(&self) {\n")})]), "n": Number(4), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(98), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1755.2114825462847/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":78,"op":"copy"},{"ln":79,"n":49,"op":"copy"},{"lines":[{"ln":128,"styles":[],"text":" }\n"},{"ln":129,"styles":[],"text":"\n"},{"ln":130,"styles":[],"text":" /// Update the title of the EditView to the currently set file_name\n"},{"ln":131,"styles":[],"text":" fn update_title(&self) {\n"}],"n":4,"op":"ins"},{"n":998,"op":"invalidate"},{"n":98,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 78, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " }\n", cursor: [], styles: [], line_num: Some(128) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name\n", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {\n", cursor: [], styles: [], line_num: Some(131) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 98, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 78, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " }\n", cursor: [], styles: [], line_num: Some(128) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name\n", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {\n", cursor: [], styles: [], line_num: Some(131) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 98, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 78, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " }\n", cursor: [], styles: [], line_num: Some(128) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name\n", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {\n", cursor: [], styles: [], line_num: Some(131) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 98, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }, Line { text: " pub fn set_file(&mut self, file_name: &str) {", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",", cursor: [], styles: [], line_num: Some(121) }, Line { text: " gettext(\"Connecting\"),", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id", cursor: [], styles: [], line_num: Some(124) }, Line { text: " );", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();", cursor: [], styles: [], line_num: Some(127) }], old_invalid_before: 0, old_invalid_after: 1100, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 78, lines: [] }, Operation { operation_type: Copy_, nb_lines: 49, lines: [] }, Operation { operation_type: Insert, nb_lines: 4, lines: [Line { text: " }\n", cursor: [], styles: [], line_num: Some(128) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name\n", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {\n", cursor: [], styles: [], line_num: Some(131) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 98, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 78 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 49 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 4 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 98 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 83 131 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[83,131],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(83), Number(131)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(83), Number(131)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(83), Number(131)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[83,131],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":81,"op":"copy"},{"ln":82,"n":50,"op":"copy"},{"lines":[{"ln":132,"styles":[],"text":" let title = match self.file_name {\n"},{"ln":133,"styles":[],"text":" Some(ref f) => f\n"}],"n":2,"op":"ins"},{"n":998,"op":"invalidate"},{"n":96,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(81), "op": String("copy")}), Object({"ln": Number(82), "n": Number(50), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(132), "styles": Array([]), "text": String(" let title = match self.file_name {\n")}), Object({"ln": Number(133), "styles": Array([]), "text": String(" Some(ref f) => f\n")})]), "n": Number(2), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(96), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":81,"op":"copy"},{"ln":82,"n":50,"op":"copy"},{"lines":[{"ln":132,"styles":[],"text":" let title = match self.file_name {\n"},{"ln":133,"styles":[],"text":" Some(ref f) => f\n"}],"n":2,"op":"ins"},{"n":998,"op":"invalidate"},{"n":96,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 81, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " let title = match self.file_name {\n", cursor: [], styles: [], line_num: Some(132) }, Line { text: " Some(ref f) => f\n", cursor: [], styles: [], line_num: Some(133) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 96, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 81, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " let title = match self.file_name {\n", cursor: [], styles: [], line_num: Some(132) }, Line { text: " Some(ref f) => f\n", cursor: [], styles: [], line_num: Some(133) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 96, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 81, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " let title = match self.file_name {\n", cursor: [], styles: [], line_num: Some(132) }, Line { text: " Some(ref f) => f\n", cursor: [], styles: [], line_num: Some(133) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 96, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }, Line { text: " pub fn set_file(&mut self, file_name: &str) {", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",", cursor: [], styles: [], line_num: Some(121) }, Line { text: " gettext(\"Connecting\"),", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id", cursor: [], styles: [], line_num: Some(124) }, Line { text: " );", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();", cursor: [], styles: [], line_num: Some(127) }, Line { text: " }", cursor: [], styles: [], line_num: Some(128) }, Line { text: "", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {", cursor: [], styles: [], line_num: Some(131) }], old_invalid_before: 0, old_invalid_after: 1096, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 81, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " let title = match self.file_name {\n", cursor: [], styles: [], line_num: Some(132) }, Line { text: " Some(ref f) => f\n", cursor: [], styles: [], line_num: Some(133) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 96, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 81 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 50 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 2 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 96 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1798.8041789048686/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 85 133 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[85,133],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(85), Number(133)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(85), Number(133)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(85), Number(133)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[85,133],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":83,"op":"copy"},{"ln":84,"n":50,"op":"copy"},{"lines":[{"ln":134,"styles":[],"text":" .split(::std::path::MAIN_SEPARATOR)\n"},{"ln":135,"styles":[],"text":" .last()\n"}],"n":2,"op":"ins"},{"n":998,"op":"invalidate"},{"n":94,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(83), "op": String("copy")}), Object({"ln": Number(84), "n": Number(50), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(134), "styles": Array([]), "text": String(" .split(::std::path::MAIN_SEPARATOR)\n")}), Object({"ln": Number(135), "styles": Array([]), "text": String(" .last()\n")})]), "n": Number(2), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(94), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":83,"op":"copy"},{"ln":84,"n":50,"op":"copy"},{"lines":[{"ln":134,"styles":[],"text":" .split(::std::path::MAIN_SEPARATOR)\n"},{"ln":135,"styles":[],"text":" .last()\n"}],"n":2,"op":"ins"},{"n":998,"op":"invalidate"},{"n":94,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1818.178710620995/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 83, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " .split(::std::path::MAIN_SEPARATOR)\n", cursor: [], styles: [], line_num: Some(134) }, Line { text: " .last()\n", cursor: [], styles: [], line_num: Some(135) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 94, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 83, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " .split(::std::path::MAIN_SEPARATOR)\n", cursor: [], styles: [], line_num: Some(134) }, Line { text: " .last()\n", cursor: [], styles: [], line_num: Some(135) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 94, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 83, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " .split(::std::path::MAIN_SEPARATOR)\n", cursor: [], styles: [], line_num: Some(134) }, Line { text: " .last()\n", cursor: [], styles: [], line_num: Some(135) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 94, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }, Line { text: " pub fn set_file(&mut self, file_name: &str) {", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",", cursor: [], styles: [], line_num: Some(121) }, Line { text: " gettext(\"Connecting\"),", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id", cursor: [], styles: [], line_num: Some(124) }, Line { text: " );", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();", cursor: [], styles: [], line_num: Some(127) }, Line { text: " }", cursor: [], styles: [], line_num: Some(128) }, Line { text: "", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {", cursor: [], styles: [], line_num: Some(131) }, Line { text: " let title = match self.file_name {", cursor: [], styles: [], line_num: Some(132) }, Line { text: " Some(ref f) => f", cursor: [], styles: [], line_num: Some(133) }], old_invalid_before: 0, old_invalid_after: 1094, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 83, lines: [] }, Operation { operation_type: Copy_, nb_lines: 50, lines: [] }, Operation { operation_type: Insert, nb_lines: 2, lines: [Line { text: " .split(::std::path::MAIN_SEPARATOR)\n", cursor: [], styles: [], line_num: Some(134) }, Line { text: " .last()\n", cursor: [], styles: [], line_num: Some(135) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 94, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 83 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 50 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 2 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 94 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1818.178710620995/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 86 134 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[86,134],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(86), Number(134)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(86), Number(134)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(86), Number(134)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[86,134],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":84,"op":"copy"},{"ln":85,"n":51,"op":"copy"},{"lines":[{"ln":136,"styles":[],"text":" .unwrap_or(&gettext(\"Untitled\"))\n"}],"n":1,"op":"ins"},{"n":998,"op":"invalidate"},{"n":93,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(84), "op": String("copy")}), Object({"ln": Number(85), "n": Number(51), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(136), "styles": Array([]), "text": String(" .unwrap_or(&gettext(\"Untitled\"))\n")})]), "n": Number(1), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(93), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":84,"op":"copy"},{"ln":85,"n":51,"op":"copy"},{"lines":[{"ln":136,"styles":[],"text":" .unwrap_or(&gettext(\"Untitled\"))\n"}],"n":1,"op":"ins"},{"n":998,"op":"invalidate"},{"n":93,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 84, lines: [] }, Operation { operation_type: Copy_, nb_lines: 51, lines: [] }, Operation { operation_type: Insert, nb_lines: 1, lines: [Line { text: " .unwrap_or(&gettext(\"Untitled\"))\n", cursor: [], styles: [], line_num: Some(136) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 93, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 84, lines: [] }, Operation { operation_type: Copy_, nb_lines: 51, lines: [] }, Operation { operation_type: Insert, nb_lines: 1, lines: [Line { text: " .unwrap_or(&gettext(\"Untitled\"))\n", cursor: [], styles: [], line_num: Some(136) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 93, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 84, lines: [] }, Operation { operation_type: Copy_, nb_lines: 51, lines: [] }, Operation { operation_type: Insert, nb_lines: 1, lines: [Line { text: " .unwrap_or(&gettext(\"Untitled\"))\n", cursor: [], styles: [], line_num: Some(136) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 93, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }, Line { text: " pub fn set_file(&mut self, file_name: &str) {", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",", cursor: [], styles: [], line_num: Some(121) }, Line { text: " gettext(\"Connecting\"),", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id", cursor: [], styles: [], line_num: Some(124) }, Line { text: " );", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();", cursor: [], styles: [], line_num: Some(127) }, Line { text: " }", cursor: [], styles: [], line_num: Some(128) }, Line { text: "", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {", cursor: [], styles: [], line_num: Some(131) }, Line { text: " let title = match self.file_name {", cursor: [], styles: [], line_num: Some(132) }, Line { text: " Some(ref f) => f", cursor: [], styles: [], line_num: Some(133) }, Line { text: " .split(::std::path::MAIN_SEPARATOR)", cursor: [], styles: [], line_num: Some(134) }, Line { text: " .last()", cursor: [], styles: [], line_num: Some(135) }], old_invalid_before: 0, old_invalid_after: 1092, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 84, lines: [] }, Operation { operation_type: Copy_, nb_lines: 51, lines: [] }, Operation { operation_type: Insert, nb_lines: 1, lines: [Line { text: " .unwrap_or(&gettext(\"Untitled\"))\n", cursor: [], styles: [], line_num: Some(136) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 93, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 84 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 51 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 1 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 93 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 87 135 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[87,135],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(87), Number(135)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(87), Number(135)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(87), Number(135)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[87,135],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":85,"op":"copy"},{"ln":86,"n":51,"op":"copy"},{"lines":[{"ln":137,"styles":[],"text":" .to_string(),\n"}],"n":1,"op":"ins"},{"n":998,"op":"invalidate"},{"n":92,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1830.2877929422236/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(85), "op": String("copy")}), Object({"ln": Number(86), "n": Number(51), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(137), "styles": Array([]), "text": String(" .to_string(),\n")})]), "n": Number(1), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(92), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":85,"op":"copy"},{"ln":86,"n":51,"op":"copy"},{"lines":[{"ln":137,"styles":[],"text":" .to_string(),\n"}],"n":1,"op":"ins"},{"n":998,"op":"invalidate"},{"n":92,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 85, lines: [] }, Operation { operation_type: Copy_, nb_lines: 51, lines: [] }, Operation { operation_type: Insert, nb_lines: 1, lines: [Line { text: " .to_string(),\n", cursor: [], styles: [], line_num: Some(137) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 92, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:18Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 85, lines: [] }, Operation { operation_type: Copy_, nb_lines: 51, lines: [] }, Operation { operation_type: Insert, nb_lines: 1, lines: [Line { text: " .to_string(),\n", cursor: [], styles: [], line_num: Some(137) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 92, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 85, lines: [] }, Operation { operation_type: Copy_, nb_lines: 51, lines: [] }, Operation { operation_type: Insert, nb_lines: 1, lines: [Line { text: " .to_string(),\n", cursor: [], styles: [], line_num: Some(137) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 92, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:18Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }, Line { text: " pub fn set_file(&mut self, file_name: &str) {", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",", cursor: [], styles: [], line_num: Some(121) }, Line { text: " gettext(\"Connecting\"),", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id", cursor: [], styles: [], line_num: Some(124) }, Line { text: " );", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();", cursor: [], styles: [], line_num: Some(127) }, Line { text: " }", cursor: [], styles: [], line_num: Some(128) }, Line { text: "", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {", cursor: [], styles: [], line_num: Some(131) }, Line { text: " let title = match self.file_name {", cursor: [], styles: [], line_num: Some(132) }, Line { text: " Some(ref f) => f", cursor: [], styles: [], line_num: Some(133) }, Line { text: " .split(::std::path::MAIN_SEPARATOR)", cursor: [], styles: [], line_num: Some(134) }, Line { text: " .last()", cursor: [], styles: [], line_num: Some(135) }, Line { text: " .unwrap_or(&gettext(\"Untitled\"))", cursor: [], styles: [], line_num: Some(136) }], old_invalid_before: 0, old_invalid_after: 1091, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:18Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 85, lines: [] }, Operation { operation_type: Copy_, nb_lines: 51, lines: [] }, Operation { operation_type: Insert, nb_lines: 1, lines: [Line { text: " .to_string(),\n", cursor: [], styles: [], line_num: Some(137) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 92, lines: [] }] | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 85 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] copying 51 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] inserting 1 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:18Z INFO xrl::cache] invalidating 92 lines | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1830.2877929422236/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z DEBUG editview::edit_view] Updating visible scroll region 87 135 | |
[2019-06-05T21:37:18Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[87,135],"view_id":"view-id-1"} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(87), Number(135)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:18Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(87), Number(135)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:18Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(87), Number(135)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[87,135],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:18Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:18Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:18Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:18Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1851.764367061232/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1871.8558253754848/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1890.6514999070237/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1908.2349612750284/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1924.6843902732437/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1940.0729254827952/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1954.4689884659724/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1967.9365879868783/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1980.535604611594/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 1992.322056953265/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:18Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 2022.7861107524395/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 2040.8352305360195/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 2048.7327029861135/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 2056.1208337764238/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 2063.032472521562/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 2069.4983502244777/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 2075.5472159147557/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 2081.2059644745264/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z DEBUG editview::edit_view] Updating visible scroll region 99 147 | |
[2019-06-05T21:37:19Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[99,147],"view_id":"view-id-1"} | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(99), Number(147)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:19Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(99), Number(147)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:19Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(99), Number(147)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[99,147],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=87 | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:19Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 2 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":97,"op":"copy"},{"ln":98,"n":40,"op":"copy"},{"lines":[{"ln":138,"styles":[],"text":" None => gettext(\"Untitled\"),\n"},{"ln":139,"styles":[],"text":" };\n"},{"ln":140,"styles":[],"text":"\n"},{"ln":141,"styles":[],"text":" let mut full_title = String::new();\n"},{"ln":142,"styles":[],"text":" if !self.pristine {\n"},{"ln":143,"styles":[],"text":" full_title.push('*');\n"},{"ln":144,"styles":[],"text":" }\n"},{"ln":145,"styles":[],"text":" full_title.push_str(&title);\n"},{"ln":146,"styles":[],"text":"\n"},{"ln":147,"styles":[],"text":" trace!(\n"},{"ln":148,"styles":[],"text":" \"{} '{}': {}\",\n"},{"ln":149,"styles":[],"text":" gettext(\"Setting title for EditView\"),\n"}],"n":12,"op":"ins"},{"n":998,"op":"invalidate"},{"n":80,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:19Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(97), "op": String("copy")}), Object({"ln": Number(98), "n": Number(40), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(138), "styles": Array([]), "text": String(" None => gettext(\"Untitled\"),\n")}), Object({"ln": Number(139), "styles": Array([]), "text": String(" };\n")}), Object({"ln": Number(140), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(141), "styles": Array([]), "text": String(" let mut full_title = String::new();\n")}), Object({"ln": Number(142), "styles": Array([]), "text": String(" if !self.pristine {\n")}), Object({"ln": Number(143), "styles": Array([]), "text": String(" full_title.push(\'*\');\n")}), Object({"ln": Number(144), "styles": Array([]), "text": String(" }\n")}), Object({"ln": Number(145), "styles": Array([]), "text": String(" full_title.push_str(&title);\n")}), Object({"ln": Number(146), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(147), "styles": Array([]), "text": String(" trace!(\n")}), Object({"ln": Number(148), "styles": Array([]), "text": String(" \"{} \'{}\': {}\",\n")}), Object({"ln": Number(149), "styles": Array([]), "text": String(" gettext(\"Setting title for EditView\"),\n")})]), "n": Number(12), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(80), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:19Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":97,"op":"copy"},{"ln":98,"n":40,"op":"copy"},{"lines":[{"ln":138,"styles":[],"text":" None => gettext(\"Untitled\"),\n"},{"ln":139,"styles":[],"text":" };\n"},{"ln":140,"styles":[],"text":"\n"},{"ln":141,"styles":[],"text":" let mut full_title = String::new();\n"},{"ln":142,"styles":[],"text":" if !self.pristine {\n"},{"ln":143,"styles":[],"text":" full_title.push('*');\n"},{"ln":144,"styles":[],"text":" }\n"},{"ln":145,"styles":[],"text":" full_title.push_str(&title);\n"},{"ln":146,"styles":[],"text":"\n"},{"ln":147,"styles":[],"text":" trace!(\n"},{"ln":148,"styles":[],"text":" \"{} '{}': {}\",\n"},{"ln":149,"styles":[],"text":" gettext(\"Setting title for EditView\"),\n"}],"n":12,"op":"ins"},{"n":998,"op":"invalidate"},{"n":80,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:19Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:19Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 97, lines: [] }, Operation { operation_type: Copy_, nb_lines: 40, lines: [] }, Operation { operation_type: Insert, nb_lines: 12, lines: [Line { text: " None => gettext(\"Untitled\"),\n", cursor: [], styles: [], line_num: Some(138) }, Line { text: " };\n", cursor: [], styles: [], line_num: Some(139) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(140) }, Line { text: " let mut full_title = String::new();\n", cursor: [], styles: [], line_num: Some(141) }, Line { text: " if !self.pristine {\n", cursor: [], styles: [], line_num: Some(142) }, Line { text: " full_title.push(\'*\');\n", cursor: [], styles: [], line_num: Some(143) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(144) }, Line { text: " full_title.push_str(&title);\n", cursor: [], styles: [], line_num: Some(145) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(146) }, Line { text: " trace!(\n", cursor: [], styles: [], line_num: Some(147) }, Line { text: " \"{} \'{}\': {}\",\n", cursor: [], styles: [], line_num: Some(148) }, Line { text: " gettext(\"Setting title for EditView\"),\n", cursor: [], styles: [], line_num: Some(149) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 80, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 97, lines: [] }, Operation { operation_type: Copy_, nb_lines: 40, lines: [] }, Operation { operation_type: Insert, nb_lines: 12, lines: [Line { text: " None => gettext(\"Untitled\"),\n", cursor: [], styles: [], line_num: Some(138) }, Line { text: " };\n", cursor: [], styles: [], line_num: Some(139) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(140) }, Line { text: " let mut full_title = String::new();\n", cursor: [], styles: [], line_num: Some(141) }, Line { text: " if !self.pristine {\n", cursor: [], styles: [], line_num: Some(142) }, Line { text: " full_title.push(\'*\');\n", cursor: [], styles: [], line_num: Some(143) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(144) }, Line { text: " full_title.push_str(&title);\n", cursor: [], styles: [], line_num: Some(145) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(146) }, Line { text: " trace!(\n", cursor: [], styles: [], line_num: Some(147) }, Line { text: " \"{} \'{}\': {}\",\n", cursor: [], styles: [], line_num: Some(148) }, Line { text: " gettext(\"Setting title for EditView\"),\n", cursor: [], styles: [], line_num: Some(149) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 80, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 97, lines: [] }, Operation { operation_type: Copy_, nb_lines: 40, lines: [] }, Operation { operation_type: Insert, nb_lines: 12, lines: [Line { text: " None => gettext(\"Untitled\"),\n", cursor: [], styles: [], line_num: Some(138) }, Line { text: " };\n", cursor: [], styles: [], line_num: Some(139) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(140) }, Line { text: " let mut full_title = String::new();\n", cursor: [], styles: [], line_num: Some(141) }, Line { text: " if !self.pristine {\n", cursor: [], styles: [], line_num: Some(142) }, Line { text: " full_title.push(\'*\');\n", cursor: [], styles: [], line_num: Some(143) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(144) }, Line { text: " full_title.push_str(&title);\n", cursor: [], styles: [], line_num: Some(145) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(146) }, Line { text: " trace!(\n", cursor: [], styles: [], line_num: Some(147) }, Line { text: " \"{} \'{}\': {}\",\n", cursor: [], styles: [], line_num: Some(148) }, Line { text: " gettext(\"Setting title for EditView\"),\n", cursor: [], styles: [], line_num: Some(149) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 80, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:19Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:19Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }, Line { text: " pub fn set_file(&mut self, file_name: &str) {", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",", cursor: [], styles: [], line_num: Some(121) }, Line { text: " gettext(\"Connecting\"),", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id", cursor: [], styles: [], line_num: Some(124) }, Line { text: " );", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();", cursor: [], styles: [], line_num: Some(127) }, Line { text: " }", cursor: [], styles: [], line_num: Some(128) }, Line { text: "", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {", cursor: [], styles: [], line_num: Some(131) }, Line { text: " let title = match self.file_name {", cursor: [], styles: [], line_num: Some(132) }, Line { text: " Some(ref f) => f", cursor: [], styles: [], line_num: Some(133) }, Line { text: " .split(::std::path::MAIN_SEPARATOR)", cursor: [], styles: [], line_num: Some(134) }, Line { text: " .last()", cursor: [], styles: [], line_num: Some(135) }, Line { text: " .unwrap_or(&gettext(\"Untitled\"))", cursor: [], styles: [], line_num: Some(136) }, Line { text: " .to_string(),", cursor: [], styles: [], line_num: Some(137) }], old_invalid_before: 0, old_invalid_after: 1090, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:19Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 97, lines: [] }, Operation { operation_type: Copy_, nb_lines: 40, lines: [] }, Operation { operation_type: Insert, nb_lines: 12, lines: [Line { text: " None => gettext(\"Untitled\"),\n", cursor: [], styles: [], line_num: Some(138) }, Line { text: " };\n", cursor: [], styles: [], line_num: Some(139) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(140) }, Line { text: " let mut full_title = String::new();\n", cursor: [], styles: [], line_num: Some(141) }, Line { text: " if !self.pristine {\n", cursor: [], styles: [], line_num: Some(142) }, Line { text: " full_title.push(\'*\');\n", cursor: [], styles: [], line_num: Some(143) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(144) }, Line { text: " full_title.push_str(&title);\n", cursor: [], styles: [], line_num: Some(145) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(146) }, Line { text: " trace!(\n", cursor: [], styles: [], line_num: Some(147) }, Line { text: " \"{} \'{}\': {}\",\n", cursor: [], styles: [], line_num: Some(148) }, Line { text: " gettext(\"Setting title for EditView\"),\n", cursor: [], styles: [], line_num: Some(149) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 80, lines: [] }] | |
[2019-06-05T21:37:19Z INFO xrl::cache] copying 97 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] copying 40 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] inserting 12 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] invalidating 80 lines | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 2250.7331169794447/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z DEBUG editview::edit_view] Updating visible scroll region 107 155 | |
[2019-06-05T21:37:19Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[107,155],"view_id":"view-id-1"} | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(107), Number(155)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:19Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(107), Number(155)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:19Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(107), Number(155)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[107,155],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=88 | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:19Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":105,"op":"copy"},{"ln":106,"n":44,"op":"copy"},{"lines":[{"ln":150,"styles":[],"text":" self.view_id,\n"},{"ln":151,"styles":[],"text":" full_title\n"},{"ln":152,"styles":[],"text":" );\n"},{"ln":153,"styles":[],"text":" self.top_bar.label.set_text(&full_title);\n"},{"ln":154,"styles":[],"text":" }\n"},{"ln":155,"styles":[],"text":"\n"},{"ln":156,"styles":[],"text":" /// If xi-editor sends us a [config_changed](https://xi-editor.io/docs/frontend-protocol.html#config_changed)\n"},{"ln":157,"styles":[],"text":" /// msg we process it here, e.g. setting the font face/size xi-editor tells us. Most configs don't\n"}],"n":8,"op":"ins"},{"n":998,"op":"invalidate"},{"n":72,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:19Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(105), "op": String("copy")}), Object({"ln": Number(106), "n": Number(44), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(150), "styles": Array([]), "text": String(" self.view_id,\n")}), Object({"ln": Number(151), "styles": Array([]), "text": String(" full_title\n")}), Object({"ln": Number(152), "styles": Array([]), "text": String(" );\n")}), Object({"ln": Number(153), "styles": Array([]), "text": String(" self.top_bar.label.set_text(&full_title);\n")}), Object({"ln": Number(154), "styles": Array([]), "text": String(" }\n")}), Object({"ln": Number(155), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(156), "styles": Array([]), "text": String(" /// If xi-editor sends us a [config_changed](https://xi-editor.io/docs/frontend-protocol.html#config_changed)\n")}), Object({"ln": Number(157), "styles": Array([]), "text": String(" /// msg we process it here, e.g. setting the font face/size xi-editor tells us. Most configs don\'t\n")})]), "n": Number(8), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(72), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:19Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":105,"op":"copy"},{"ln":106,"n":44,"op":"copy"},{"lines":[{"ln":150,"styles":[],"text":" self.view_id,\n"},{"ln":151,"styles":[],"text":" full_title\n"},{"ln":152,"styles":[],"text":" );\n"},{"ln":153,"styles":[],"text":" self.top_bar.label.set_text(&full_title);\n"},{"ln":154,"styles":[],"text":" }\n"},{"ln":155,"styles":[],"text":"\n"},{"ln":156,"styles":[],"text":" /// If xi-editor sends us a [config_changed](https://xi-editor.io/docs/frontend-protocol.html#config_changed)\n"},{"ln":157,"styles":[],"text":" /// msg we process it here, e.g. setting the font face/size xi-editor tells us. Most configs don't\n"}],"n":8,"op":"ins"},{"n":998,"op":"invalidate"},{"n":72,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:19Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:19Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 105, lines: [] }, Operation { operation_type: Copy_, nb_lines: 44, lines: [] }, Operation { operation_type: Insert, nb_lines: 8, lines: [Line { text: " self.view_id,\n", cursor: [], styles: [], line_num: Some(150) }, Line { text: " full_title\n", cursor: [], styles: [], line_num: Some(151) }, Line { text: " );\n", cursor: [], styles: [], line_num: Some(152) }, Line { text: " self.top_bar.label.set_text(&full_title);\n", cursor: [], styles: [], line_num: Some(153) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(154) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(155) }, Line { text: " /// If xi-editor sends us a [config_changed](https://xi-editor.io/docs/frontend-protocol.html#config_changed)\n", cursor: [], styles: [], line_num: Some(156) }, Line { text: " /// msg we process it here, e.g. setting the font face/size xi-editor tells us. Most configs don\'t\n", cursor: [], styles: [], line_num: Some(157) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 72, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:19Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 105, lines: [] }, Operation { operation_type: Copy_, nb_lines: 44, lines: [] }, Operation { operation_type: Insert, nb_lines: 8, lines: [Line { text: " self.view_id,\n", cursor: [], styles: [], line_num: Some(150) }, Line { text: " full_title\n", cursor: [], styles: [], line_num: Some(151) }, Line { text: " );\n", cursor: [], styles: [], line_num: Some(152) }, Line { text: " self.top_bar.label.set_text(&full_title);\n", cursor: [], styles: [], line_num: Some(153) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(154) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(155) }, Line { text: " /// If xi-editor sends us a [config_changed](https://xi-editor.io/docs/frontend-protocol.html#config_changed)\n", cursor: [], styles: [], line_num: Some(156) }, Line { text: " /// msg we process it here, e.g. setting the font face/size xi-editor tells us. Most configs don\'t\n", cursor: [], styles: [], line_num: Some(157) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 72, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 105, lines: [] }, Operation { operation_type: Copy_, nb_lines: 44, lines: [] }, Operation { operation_type: Insert, nb_lines: 8, lines: [Line { text: " self.view_id,\n", cursor: [], styles: [], line_num: Some(150) }, Line { text: " full_title\n", cursor: [], styles: [], line_num: Some(151) }, Line { text: " );\n", cursor: [], styles: [], line_num: Some(152) }, Line { text: " self.top_bar.label.set_text(&full_title);\n", cursor: [], styles: [], line_num: Some(153) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(154) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(155) }, Line { text: " /// If xi-editor sends us a [config_changed](https://xi-editor.io/docs/frontend-protocol.html#config_changed)\n", cursor: [], styles: [], line_num: Some(156) }, Line { text: " /// msg we process it here, e.g. setting the font face/size xi-editor tells us. Most configs don\'t\n", cursor: [], styles: [], line_num: Some(157) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 72, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:19Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:19Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }, Line { text: " pub fn set_file(&mut self, file_name: &str) {", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",", cursor: [], styles: [], line_num: Some(121) }, Line { text: " gettext(\"Connecting\"),", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id", cursor: [], styles: [], line_num: Some(124) }, Line { text: " );", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();", cursor: [], styles: [], line_num: Some(127) }, Line { text: " }", cursor: [], styles: [], line_num: Some(128) }, Line { text: "", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {", cursor: [], styles: [], line_num: Some(131) }, Line { text: " let title = match self.file_name {", cursor: [], styles: [], line_num: Some(132) }, Line { text: " Some(ref f) => f", cursor: [], styles: [], line_num: Some(133) }, Line { text: " .split(::std::path::MAIN_SEPARATOR)", cursor: [], styles: [], line_num: Some(134) }, Line { text: " .last()", cursor: [], styles: [], line_num: Some(135) }, Line { text: " .unwrap_or(&gettext(\"Untitled\"))", cursor: [], styles: [], line_num: Some(136) }, Line { text: " .to_string(),", cursor: [], styles: [], line_num: Some(137) }, Line { text: " None => gettext(\"Untitled\"),", cursor: [], styles: [], line_num: Some(138) }, Line { text: " };", cursor: [], styles: [], line_num: Some(139) }, Line { text: "", cursor: [], styles: [], line_num: Some(140) }, Line { text: " let mut full_title = String::new();", cursor: [], styles: [], line_num: Some(141) }, Line { text: " if !self.pristine {", cursor: [], styles: [], line_num: Some(142) }, Line { text: " full_title.push(\'*\');", cursor: [], styles: [], line_num: Some(143) }, Line { text: " }", cursor: [], styles: [], line_num: Some(144) }, Line { text: " full_title.push_str(&title);", cursor: [], styles: [], line_num: Some(145) }, Line { text: "", cursor: [], styles: [], line_num: Some(146) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(147) }, Line { text: " \"{} \'{}\': {}\",", cursor: [], styles: [], line_num: Some(148) }, Line { text: " gettext(\"Setting title for EditView\"),", cursor: [], styles: [], line_num: Some(149) }], old_invalid_before: 0, old_invalid_after: 1078, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:19Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 105, lines: [] }, Operation { operation_type: Copy_, nb_lines: 44, lines: [] }, Operation { operation_type: Insert, nb_lines: 8, lines: [Line { text: " self.view_id,\n", cursor: [], styles: [], line_num: Some(150) }, Line { text: " full_title\n", cursor: [], styles: [], line_num: Some(151) }, Line { text: " );\n", cursor: [], styles: [], line_num: Some(152) }, Line { text: " self.top_bar.label.set_text(&full_title);\n", cursor: [], styles: [], line_num: Some(153) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(154) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(155) }, Line { text: " /// If xi-editor sends us a [config_changed](https://xi-editor.io/docs/frontend-protocol.html#config_changed)\n", cursor: [], styles: [], line_num: Some(156) }, Line { text: " /// msg we process it here, e.g. setting the font face/size xi-editor tells us. Most configs don\'t\n", cursor: [], styles: [], line_num: Some(157) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 72, lines: [] }] | |
[2019-06-05T21:37:19Z INFO xrl::cache] copying 105 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] copying 44 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] inserting 8 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] invalidating 72 lines | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 2422.682085949843/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z DEBUG editview::edit_view] Updating visible scroll region 115 163 | |
[2019-06-05T21:37:19Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[115,163],"view_id":"view-id-1"} | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(115), Number(163)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(115), Number(163)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:19Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(115), Number(163)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[115,163],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=88 | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:19Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 2594.0256008034853/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":113,"op":"copy"},{"ln":114,"n":44,"op":"copy"},{"lines":[{"ln":158,"styles":[],"text":" /// need special handling by us though.\n"},{"ln":159,"styles":[],"text":" pub fn config_changed(&mut self, changes: &ConfigChanges) {\n"},{"ln":160,"styles":[],"text":" trace!(\n"},{"ln":161,"styles":[],"text":" \"{} 'config_changed' {} '{}': {:?}\",\n"},{"ln":162,"styles":[],"text":" gettext(\"Handling\"),\n"},{"ln":163,"styles":[],"text":" gettext(\"for EditView\"),\n"},{"ln":164,"styles":[],"text":" self.view_id,\n"},{"ln":165,"styles":[],"text":" changes\n"}],"n":8,"op":"ins"},{"n":998,"op":"invalidate"},{"n":64,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:19Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(113), "op": String("copy")}), Object({"ln": Number(114), "n": Number(44), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(158), "styles": Array([]), "text": String(" /// need special handling by us though.\n")}), Object({"ln": Number(159), "styles": Array([]), "text": String(" pub fn config_changed(&mut self, changes: &ConfigChanges) {\n")}), Object({"ln": Number(160), "styles": Array([]), "text": String(" trace!(\n")}), Object({"ln": Number(161), "styles": Array([]), "text": String(" \"{} \'config_changed\' {} \'{}\': {:?}\",\n")}), Object({"ln": Number(162), "styles": Array([]), "text": String(" gettext(\"Handling\"),\n")}), Object({"ln": Number(163), "styles": Array([]), "text": String(" gettext(\"for EditView\"),\n")}), Object({"ln": Number(164), "styles": Array([]), "text": String(" self.view_id,\n")}), Object({"ln": Number(165), "styles": Array([]), "text": String(" changes\n")})]), "n": Number(8), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(64), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:19Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":113,"op":"copy"},{"ln":114,"n":44,"op":"copy"},{"lines":[{"ln":158,"styles":[],"text":" /// need special handling by us though.\n"},{"ln":159,"styles":[],"text":" pub fn config_changed(&mut self, changes: &ConfigChanges) {\n"},{"ln":160,"styles":[],"text":" trace!(\n"},{"ln":161,"styles":[],"text":" \"{} 'config_changed' {} '{}': {:?}\",\n"},{"ln":162,"styles":[],"text":" gettext(\"Handling\"),\n"},{"ln":163,"styles":[],"text":" gettext(\"for EditView\"),\n"},{"ln":164,"styles":[],"text":" self.view_id,\n"},{"ln":165,"styles":[],"text":" changes\n"}],"n":8,"op":"ins"},{"n":998,"op":"invalidate"},{"n":64,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:19Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:19Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 113, lines: [] }, Operation { operation_type: Copy_, nb_lines: 44, lines: [] }, Operation { operation_type: Insert, nb_lines: 8, lines: [Line { text: " /// need special handling by us though.\n", cursor: [], styles: [], line_num: Some(158) }, Line { text: " pub fn config_changed(&mut self, changes: &ConfigChanges) {\n", cursor: [], styles: [], line_num: Some(159) }, Line { text: " trace!(\n", cursor: [], styles: [], line_num: Some(160) }, Line { text: " \"{} \'config_changed\' {} \'{}\': {:?}\",\n", cursor: [], styles: [], line_num: Some(161) }, Line { text: " gettext(\"Handling\"),\n", cursor: [], styles: [], line_num: Some(162) }, Line { text: " gettext(\"for EditView\"),\n", cursor: [], styles: [], line_num: Some(163) }, Line { text: " self.view_id,\n", cursor: [], styles: [], line_num: Some(164) }, Line { text: " changes\n", cursor: [], styles: [], line_num: Some(165) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 64, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:19Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 113, lines: [] }, Operation { operation_type: Copy_, nb_lines: 44, lines: [] }, Operation { operation_type: Insert, nb_lines: 8, lines: [Line { text: " /// need special handling by us though.\n", cursor: [], styles: [], line_num: Some(158) }, Line { text: " pub fn config_changed(&mut self, changes: &ConfigChanges) {\n", cursor: [], styles: [], line_num: Some(159) }, Line { text: " trace!(\n", cursor: [], styles: [], line_num: Some(160) }, Line { text: " \"{} \'config_changed\' {} \'{}\': {:?}\",\n", cursor: [], styles: [], line_num: Some(161) }, Line { text: " gettext(\"Handling\"),\n", cursor: [], styles: [], line_num: Some(162) }, Line { text: " gettext(\"for EditView\"),\n", cursor: [], styles: [], line_num: Some(163) }, Line { text: " self.view_id,\n", cursor: [], styles: [], line_num: Some(164) }, Line { text: " changes\n", cursor: [], styles: [], line_num: Some(165) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 64, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 113, lines: [] }, Operation { operation_type: Copy_, nb_lines: 44, lines: [] }, Operation { operation_type: Insert, nb_lines: 8, lines: [Line { text: " /// need special handling by us though.\n", cursor: [], styles: [], line_num: Some(158) }, Line { text: " pub fn config_changed(&mut self, changes: &ConfigChanges) {\n", cursor: [], styles: [], line_num: Some(159) }, Line { text: " trace!(\n", cursor: [], styles: [], line_num: Some(160) }, Line { text: " \"{} \'config_changed\' {} \'{}\': {:?}\",\n", cursor: [], styles: [], line_num: Some(161) }, Line { text: " gettext(\"Handling\"),\n", cursor: [], styles: [], line_num: Some(162) }, Line { text: " gettext(\"for EditView\"),\n", cursor: [], styles: [], line_num: Some(163) }, Line { text: " self.view_id,\n", cursor: [], styles: [], line_num: Some(164) }, Line { text: " changes\n", cursor: [], styles: [], line_num: Some(165) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 64, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:19Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:19Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }, Line { text: " pub fn set_file(&mut self, file_name: &str) {", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",", cursor: [], styles: [], line_num: Some(121) }, Line { text: " gettext(\"Connecting\"),", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id", cursor: [], styles: [], line_num: Some(124) }, Line { text: " );", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();", cursor: [], styles: [], line_num: Some(127) }, Line { text: " }", cursor: [], styles: [], line_num: Some(128) }, Line { text: "", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {", cursor: [], styles: [], line_num: Some(131) }, Line { text: " let title = match self.file_name {", cursor: [], styles: [], line_num: Some(132) }, Line { text: " Some(ref f) => f", cursor: [], styles: [], line_num: Some(133) }, Line { text: " .split(::std::path::MAIN_SEPARATOR)", cursor: [], styles: [], line_num: Some(134) }, Line { text: " .last()", cursor: [], styles: [], line_num: Some(135) }, Line { text: " .unwrap_or(&gettext(\"Untitled\"))", cursor: [], styles: [], line_num: Some(136) }, Line { text: " .to_string(),", cursor: [], styles: [], line_num: Some(137) }, Line { text: " None => gettext(\"Untitled\"),", cursor: [], styles: [], line_num: Some(138) }, Line { text: " };", cursor: [], styles: [], line_num: Some(139) }, Line { text: "", cursor: [], styles: [], line_num: Some(140) }, Line { text: " let mut full_title = String::new();", cursor: [], styles: [], line_num: Some(141) }, Line { text: " if !self.pristine {", cursor: [], styles: [], line_num: Some(142) }, Line { text: " full_title.push(\'*\');", cursor: [], styles: [], line_num: Some(143) }, Line { text: " }", cursor: [], styles: [], line_num: Some(144) }, Line { text: " full_title.push_str(&title);", cursor: [], styles: [], line_num: Some(145) }, Line { text: "", cursor: [], styles: [], line_num: Some(146) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(147) }, Line { text: " \"{} \'{}\': {}\",", cursor: [], styles: [], line_num: Some(148) }, Line { text: " gettext(\"Setting title for EditView\"),", cursor: [], styles: [], line_num: Some(149) }, Line { text: " self.view_id,", cursor: [], styles: [], line_num: Some(150) }, Line { text: " full_title", cursor: [], styles: [], line_num: Some(151) }, Line { text: " );", cursor: [], styles: [], line_num: Some(152) }, Line { text: " self.top_bar.label.set_text(&full_title);", cursor: [], styles: [], line_num: Some(153) }, Line { text: " }", cursor: [], styles: [], line_num: Some(154) }, Line { text: "", cursor: [], styles: [], line_num: Some(155) }, Line { text: " /// If xi-editor sends us a [config_changed](https://xi-editor.io/docs/frontend-protocol.html#config_changed)", cursor: [], styles: [], line_num: Some(156) }, Line { text: " /// msg we process it here, e.g. setting the font face/size xi-editor tells us. Most configs don\'t", cursor: [], styles: [], line_num: Some(157) }], old_invalid_before: 0, old_invalid_after: 1070, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:19Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 113, lines: [] }, Operation { operation_type: Copy_, nb_lines: 44, lines: [] }, Operation { operation_type: Insert, nb_lines: 8, lines: [Line { text: " /// need special handling by us though.\n", cursor: [], styles: [], line_num: Some(158) }, Line { text: " pub fn config_changed(&mut self, changes: &ConfigChanges) {\n", cursor: [], styles: [], line_num: Some(159) }, Line { text: " trace!(\n", cursor: [], styles: [], line_num: Some(160) }, Line { text: " \"{} \'config_changed\' {} \'{}\': {:?}\",\n", cursor: [], styles: [], line_num: Some(161) }, Line { text: " gettext(\"Handling\"),\n", cursor: [], styles: [], line_num: Some(162) }, Line { text: " gettext(\"for EditView\"),\n", cursor: [], styles: [], line_num: Some(163) }, Line { text: " self.view_id,\n", cursor: [], styles: [], line_num: Some(164) }, Line { text: " changes\n", cursor: [], styles: [], line_num: Some(165) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 64, lines: [] }] | |
[2019-06-05T21:37:19Z INFO xrl::cache] copying 113 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] copying 44 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] inserting 8 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] invalidating 64 lines | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z DEBUG editview::edit_view] Updating visible scroll region 123 171 | |
[2019-06-05T21:37:19Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[123,171],"view_id":"view-id-1"} | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(123), Number(171)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:19Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(123), Number(171)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:19Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(123), Number(171)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[123,171],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=88 | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:19Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":121,"op":"copy"},{"ln":122,"n":44,"op":"copy"},{"lines":[{"ln":166,"styles":[],"text":" );\n"},{"ln":167,"styles":[],"text":"\n"},{"ln":168,"styles":[],"text":" if let Some(font_size) = changes.font_size {\n"},{"ln":169,"styles":[],"text":" let pango_ctx = self.view_item.get_pango_ctx();\n"},{"ln":170,"styles":[],"text":" self.edit_font\n"},{"ln":171,"styles":[],"text":" .font_desc\n"},{"ln":172,"styles":[],"text":" .set_size(font_size as i32 * pango::SCALE);\n"},{"ln":173,"styles":[],"text":" // We've set the new fontsize previously, now we have to regenerate the font height/width etc.\n"}],"n":8,"op":"ins"},{"n":998,"op":"invalidate"},{"n":56,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:19Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(121), "op": String("copy")}), Object({"ln": Number(122), "n": Number(44), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(166), "styles": Array([]), "text": String(" );\n")}), Object({"ln": Number(167), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(168), "styles": Array([]), "text": String(" if let Some(font_size) = changes.font_size {\n")}), Object({"ln": Number(169), "styles": Array([]), "text": String(" let pango_ctx = self.view_item.get_pango_ctx();\n")}), Object({"ln": Number(170), "styles": Array([]), "text": String(" self.edit_font\n")}), Object({"ln": Number(171), "styles": Array([]), "text": String(" .font_desc\n")}), Object({"ln": Number(172), "styles": Array([]), "text": String(" .set_size(font_size as i32 * pango::SCALE);\n")}), Object({"ln": Number(173), "styles": Array([]), "text": String(" // We\'ve set the new fontsize previously, now we have to regenerate the font height/width etc.\n")})]), "n": Number(8), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(56), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:19Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":121,"op":"copy"},{"ln":122,"n":44,"op":"copy"},{"lines":[{"ln":166,"styles":[],"text":" );\n"},{"ln":167,"styles":[],"text":"\n"},{"ln":168,"styles":[],"text":" if let Some(font_size) = changes.font_size {\n"},{"ln":169,"styles":[],"text":" let pango_ctx = self.view_item.get_pango_ctx();\n"},{"ln":170,"styles":[],"text":" self.edit_font\n"},{"ln":171,"styles":[],"text":" .font_desc\n"},{"ln":172,"styles":[],"text":" .set_size(font_size as i32 * pango::SCALE);\n"},{"ln":173,"styles":[],"text":" // We've set the new fontsize previously, now we have to regenerate the font height/width etc.\n"}],"n":8,"op":"ins"},{"n":998,"op":"invalidate"},{"n":56,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:19Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 121, lines: [] }, Operation { operation_type: Copy_, nb_lines: 44, lines: [] }, Operation { operation_type: Insert, nb_lines: 8, lines: [Line { text: " );\n", cursor: [], styles: [], line_num: Some(166) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(167) }, Line { text: " if let Some(font_size) = changes.font_size {\n", cursor: [], styles: [], line_num: Some(168) }, Line { text: " let pango_ctx = self.view_item.get_pango_ctx();\n", cursor: [], styles: [], line_num: Some(169) }, Line { text: " self.edit_font\n", cursor: [], styles: [], line_num: Some(170) }, Line { text: " .font_desc\n", cursor: [], styles: [], line_num: Some(171) }, Line { text: " .set_size(font_size as i32 * pango::SCALE);\n", cursor: [], styles: [], line_num: Some(172) }, Line { text: " // We\'ve set the new fontsize previously, now we have to regenerate the font height/width etc.\n", cursor: [], styles: [], line_num: Some(173) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 56, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:19Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 121, lines: [] }, Operation { operation_type: Copy_, nb_lines: 44, lines: [] }, Operation { operation_type: Insert, nb_lines: 8, lines: [Line { text: " );\n", cursor: [], styles: [], line_num: Some(166) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(167) }, Line { text: " if let Some(font_size) = changes.font_size {\n", cursor: [], styles: [], line_num: Some(168) }, Line { text: " let pango_ctx = self.view_item.get_pango_ctx();\n", cursor: [], styles: [], line_num: Some(169) }, Line { text: " self.edit_font\n", cursor: [], styles: [], line_num: Some(170) }, Line { text: " .font_desc\n", cursor: [], styles: [], line_num: Some(171) }, Line { text: " .set_size(font_size as i32 * pango::SCALE);\n", cursor: [], styles: [], line_num: Some(172) }, Line { text: " // We\'ve set the new fontsize previously, now we have to regenerate the font height/width etc.\n", cursor: [], styles: [], line_num: Some(173) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 56, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:19Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 121, lines: [] }, Operation { operation_type: Copy_, nb_lines: 44, lines: [] }, Operation { operation_type: Insert, nb_lines: 8, lines: [Line { text: " );\n", cursor: [], styles: [], line_num: Some(166) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(167) }, Line { text: " if let Some(font_size) = changes.font_size {\n", cursor: [], styles: [], line_num: Some(168) }, Line { text: " let pango_ctx = self.view_item.get_pango_ctx();\n", cursor: [], styles: [], line_num: Some(169) }, Line { text: " self.edit_font\n", cursor: [], styles: [], line_num: Some(170) }, Line { text: " .font_desc\n", cursor: [], styles: [], line_num: Some(171) }, Line { text: " .set_size(font_size as i32 * pango::SCALE);\n", cursor: [], styles: [], line_num: Some(172) }, Line { text: " // We\'ve set the new fontsize previously, now we have to regenerate the font height/width etc.\n", cursor: [], styles: [], line_num: Some(173) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 56, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:19Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }, Line { text: " pub fn set_file(&mut self, file_name: &str) {", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",", cursor: [], styles: [], line_num: Some(121) }, Line { text: " gettext(\"Connecting\"),", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id", cursor: [], styles: [], line_num: Some(124) }, Line { text: " );", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();", cursor: [], styles: [], line_num: Some(127) }, Line { text: " }", cursor: [], styles: [], line_num: Some(128) }, Line { text: "", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {", cursor: [], styles: [], line_num: Some(131) }, Line { text: " let title = match self.file_name {", cursor: [], styles: [], line_num: Some(132) }, Line { text: " Some(ref f) => f", cursor: [], styles: [], line_num: Some(133) }, Line { text: " .split(::std::path::MAIN_SEPARATOR)", cursor: [], styles: [], line_num: Some(134) }, Line { text: " .last()", cursor: [], styles: [], line_num: Some(135) }, Line { text: " .unwrap_or(&gettext(\"Untitled\"))", cursor: [], styles: [], line_num: Some(136) }, Line { text: " .to_string(),", cursor: [], styles: [], line_num: Some(137) }, Line { text: " None => gettext(\"Untitled\"),", cursor: [], styles: [], line_num: Some(138) }, Line { text: " };", cursor: [], styles: [], line_num: Some(139) }, Line { text: "", cursor: [], styles: [], line_num: Some(140) }, Line { text: " let mut full_title = String::new();", cursor: [], styles: [], line_num: Some(141) }, Line { text: " if !self.pristine {", cursor: [], styles: [], line_num: Some(142) }, Line { text: " full_title.push(\'*\');", cursor: [], styles: [], line_num: Some(143) }, Line { text: " }", cursor: [], styles: [], line_num: Some(144) }, Line { text: " full_title.push_str(&title);", cursor: [], styles: [], line_num: Some(145) }, Line { text: "", cursor: [], styles: [], line_num: Some(146) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(147) }, Line { text: " \"{} \'{}\': {}\",", cursor: [], styles: [], line_num: Some(148) }, Line { text: " gettext(\"Setting title for EditView\"),", cursor: [], styles: [], line_num: Some(149) }, Line { text: " self.view_id,", cursor: [], styles: [], line_num: Some(150) }, Line { text: " full_title", cursor: [], styles: [], line_num: Some(151) }, Line { text: " );", cursor: [], styles: [], line_num: Some(152) }, Line { text: " self.top_bar.label.set_text(&full_title);", cursor: [], styles: [], line_num: Some(153) }, Line { text: " }", cursor: [], styles: [], line_num: Some(154) }, Line { text: "", cursor: [], styles: [], line_num: Some(155) }, Line { text: " /// If xi-editor sends us a [config_changed](https://xi-editor.io/docs/frontend-protocol.html#config_changed)", cursor: [], styles: [], line_num: Some(156) }, Line { text: " /// msg we process it here, e.g. setting the font face/size xi-editor tells us. Most configs don\'t", cursor: [], styles: [], line_num: Some(157) }, Line { text: " /// need special handling by us though.", cursor: [], styles: [], line_num: Some(158) }, Line { text: " pub fn config_changed(&mut self, changes: &ConfigChanges) {", cursor: [], styles: [], line_num: Some(159) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(160) }, Line { text: " \"{} \'config_changed\' {} \'{}\': {:?}\",", cursor: [], styles: [], line_num: Some(161) }, Line { text: " gettext(\"Handling\"),", cursor: [], styles: [], line_num: Some(162) }, Line { text: " gettext(\"for EditView\"),", cursor: [], styles: [], line_num: Some(163) }, Line { text: " self.view_id,", cursor: [], styles: [], line_num: Some(164) }, Line { text: " changes", cursor: [], styles: [], line_num: Some(165) }], old_invalid_before: 0, old_invalid_after: 1062, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:19Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 121, lines: [] }, Operation { operation_type: Copy_, nb_lines: 44, lines: [] }, Operation { operation_type: Insert, nb_lines: 8, lines: [Line { text: " );\n", cursor: [], styles: [], line_num: Some(166) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(167) }, Line { text: " if let Some(font_size) = changes.font_size {\n", cursor: [], styles: [], line_num: Some(168) }, Line { text: " let pango_ctx = self.view_item.get_pango_ctx();\n", cursor: [], styles: [], line_num: Some(169) }, Line { text: " self.edit_font\n", cursor: [], styles: [], line_num: Some(170) }, Line { text: " .font_desc\n", cursor: [], styles: [], line_num: Some(171) }, Line { text: " .set_size(font_size as i32 * pango::SCALE);\n", cursor: [], styles: [], line_num: Some(172) }, Line { text: " // We\'ve set the new fontsize previously, now we have to regenerate the font height/width etc.\n", cursor: [], styles: [], line_num: Some(173) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 56, lines: [] }] | |
[2019-06-05T21:37:19Z INFO xrl::cache] copying 121 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] copying 44 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] inserting 8 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] invalidating 56 lines | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 2732.674593387804/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z DEBUG editview::edit_view] Updating visible scroll region 130 178 | |
[2019-06-05T21:37:19Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[130,178],"view_id":"view-id-1"} | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(130), Number(178)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'linecount_draw' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:19Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(130), Number(178)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:19Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(130), Number(178)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[130,178],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Drawing EditView vertical adjustment: 2848.316329561634/25772; horizontal adjustment: 0/1988 | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=88 | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:19Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":128,"op":"copy"},{"ln":129,"n":45,"op":"copy"},{"lines":[{"ln":174,"styles":[],"text":" self.edit_font = Font::new(&pango_ctx, self.edit_font.font_desc.clone());\n"},{"ln":175,"styles":[],"text":" self.view_item.edit_area.queue_draw();\n"},{"ln":176,"styles":[],"text":" }\n"},{"ln":177,"styles":[],"text":"\n"},{"ln":178,"styles":[],"text":" if let Some(font_face) = &changes.font_face {\n"},{"ln":179,"styles":[],"text":" debug!(\"{}: {}\", gettext(\"Setting edit font to\"), font_face);\n"},{"ln":180,"styles":[],"text":" let pango_ctx = self.view_item.get_pango_ctx();\n"}],"n":7,"op":"ins"},{"n":998,"op":"invalidate"},{"n":49,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:19Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(128), "op": String("copy")}), Object({"ln": Number(129), "n": Number(45), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(174), "styles": Array([]), "text": String(" self.edit_font = Font::new(&pango_ctx, self.edit_font.font_desc.clone());\n")}), Object({"ln": Number(175), "styles": Array([]), "text": String(" self.view_item.edit_area.queue_draw();\n")}), Object({"ln": Number(176), "styles": Array([]), "text": String(" }\n")}), Object({"ln": Number(177), "styles": Array([]), "text": String("\n")}), Object({"ln": Number(178), "styles": Array([]), "text": String(" if let Some(font_face) = &changes.font_face {\n")}), Object({"ln": Number(179), "styles": Array([]), "text": String(" debug!(\"{}: {}\", gettext(\"Setting edit font to\"), font_face);\n")}), Object({"ln": Number(180), "styles": Array([]), "text": String(" let pango_ctx = self.view_item.get_pango_ctx();\n")})]), "n": Number(7), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(49), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:19Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":128,"op":"copy"},{"ln":129,"n":45,"op":"copy"},{"lines":[{"ln":174,"styles":[],"text":" self.edit_font = Font::new(&pango_ctx, self.edit_font.font_desc.clone());\n"},{"ln":175,"styles":[],"text":" self.view_item.edit_area.queue_draw();\n"},{"ln":176,"styles":[],"text":" }\n"},{"ln":177,"styles":[],"text":"\n"},{"ln":178,"styles":[],"text":" if let Some(font_face) = &changes.font_face {\n"},{"ln":179,"styles":[],"text":" debug!(\"{}: {}\", gettext(\"Setting edit font to\"), font_face);\n"},{"ln":180,"styles":[],"text":" let pango_ctx = self.view_item.get_pango_ctx();\n"}],"n":7,"op":"ins"},{"n":998,"op":"invalidate"},{"n":49,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:19Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:19Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 128, lines: [] }, Operation { operation_type: Copy_, nb_lines: 45, lines: [] }, Operation { operation_type: Insert, nb_lines: 7, lines: [Line { text: " self.edit_font = Font::new(&pango_ctx, self.edit_font.font_desc.clone());\n", cursor: [], styles: [], line_num: Some(174) }, Line { text: " self.view_item.edit_area.queue_draw();\n", cursor: [], styles: [], line_num: Some(175) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(176) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(177) }, Line { text: " if let Some(font_face) = &changes.font_face {\n", cursor: [], styles: [], line_num: Some(178) }, Line { text: " debug!(\"{}: {}\", gettext(\"Setting edit font to\"), font_face);\n", cursor: [], styles: [], line_num: Some(179) }, Line { text: " let pango_ctx = self.view_item.get_pango_ctx();\n", cursor: [], styles: [], line_num: Some(180) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 49, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 128, lines: [] }, Operation { operation_type: Copy_, nb_lines: 45, lines: [] }, Operation { operation_type: Insert, nb_lines: 7, lines: [Line { text: " self.edit_font = Font::new(&pango_ctx, self.edit_font.font_desc.clone());\n", cursor: [], styles: [], line_num: Some(174) }, Line { text: " self.view_item.edit_area.queue_draw();\n", cursor: [], styles: [], line_num: Some(175) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(176) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(177) }, Line { text: " if let Some(font_face) = &changes.font_face {\n", cursor: [], styles: [], line_num: Some(178) }, Line { text: " debug!(\"{}: {}\", gettext(\"Setting edit font to\"), font_face);\n", cursor: [], styles: [], line_num: Some(179) }, Line { text: " let pango_ctx = self.view_item.get_pango_ctx();\n", cursor: [], styles: [], line_num: Some(180) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 49, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 128, lines: [] }, Operation { operation_type: Copy_, nb_lines: 45, lines: [] }, Operation { operation_type: Insert, nb_lines: 7, lines: [Line { text: " self.edit_font = Font::new(&pango_ctx, self.edit_font.font_desc.clone());\n", cursor: [], styles: [], line_num: Some(174) }, Line { text: " self.view_item.edit_area.queue_draw();\n", cursor: [], styles: [], line_num: Some(175) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(176) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(177) }, Line { text: " if let Some(font_face) = &changes.font_face {\n", cursor: [], styles: [], line_num: Some(178) }, Line { text: " debug!(\"{}: {}\", gettext(\"Setting edit font to\"), font_face);\n", cursor: [], styles: [], line_num: Some(179) }, Line { text: " let pango_ctx = self.view_item.get_pango_ctx();\n", cursor: [], styles: [], line_num: Some(180) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 49, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:19Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:19Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }, Line { text: " pub fn set_file(&mut self, file_name: &str) {", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",", cursor: [], styles: [], line_num: Some(121) }, Line { text: " gettext(\"Connecting\"),", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id", cursor: [], styles: [], line_num: Some(124) }, Line { text: " );", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();", cursor: [], styles: [], line_num: Some(127) }, Line { text: " }", cursor: [], styles: [], line_num: Some(128) }, Line { text: "", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {", cursor: [], styles: [], line_num: Some(131) }, Line { text: " let title = match self.file_name {", cursor: [], styles: [], line_num: Some(132) }, Line { text: " Some(ref f) => f", cursor: [], styles: [], line_num: Some(133) }, Line { text: " .split(::std::path::MAIN_SEPARATOR)", cursor: [], styles: [], line_num: Some(134) }, Line { text: " .last()", cursor: [], styles: [], line_num: Some(135) }, Line { text: " .unwrap_or(&gettext(\"Untitled\"))", cursor: [], styles: [], line_num: Some(136) }, Line { text: " .to_string(),", cursor: [], styles: [], line_num: Some(137) }, Line { text: " None => gettext(\"Untitled\"),", cursor: [], styles: [], line_num: Some(138) }, Line { text: " };", cursor: [], styles: [], line_num: Some(139) }, Line { text: "", cursor: [], styles: [], line_num: Some(140) }, Line { text: " let mut full_title = String::new();", cursor: [], styles: [], line_num: Some(141) }, Line { text: " if !self.pristine {", cursor: [], styles: [], line_num: Some(142) }, Line { text: " full_title.push(\'*\');", cursor: [], styles: [], line_num: Some(143) }, Line { text: " }", cursor: [], styles: [], line_num: Some(144) }, Line { text: " full_title.push_str(&title);", cursor: [], styles: [], line_num: Some(145) }, Line { text: "", cursor: [], styles: [], line_num: Some(146) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(147) }, Line { text: " \"{} \'{}\': {}\",", cursor: [], styles: [], line_num: Some(148) }, Line { text: " gettext(\"Setting title for EditView\"),", cursor: [], styles: [], line_num: Some(149) }, Line { text: " self.view_id,", cursor: [], styles: [], line_num: Some(150) }, Line { text: " full_title", cursor: [], styles: [], line_num: Some(151) }, Line { text: " );", cursor: [], styles: [], line_num: Some(152) }, Line { text: " self.top_bar.label.set_text(&full_title);", cursor: [], styles: [], line_num: Some(153) }, Line { text: " }", cursor: [], styles: [], line_num: Some(154) }, Line { text: "", cursor: [], styles: [], line_num: Some(155) }, Line { text: " /// If xi-editor sends us a [config_changed](https://xi-editor.io/docs/frontend-protocol.html#config_changed)", cursor: [], styles: [], line_num: Some(156) }, Line { text: " /// msg we process it here, e.g. setting the font face/size xi-editor tells us. Most configs don\'t", cursor: [], styles: [], line_num: Some(157) }, Line { text: " /// need special handling by us though.", cursor: [], styles: [], line_num: Some(158) }, Line { text: " pub fn config_changed(&mut self, changes: &ConfigChanges) {", cursor: [], styles: [], line_num: Some(159) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(160) }, Line { text: " \"{} \'config_changed\' {} \'{}\': {:?}\",", cursor: [], styles: [], line_num: Some(161) }, Line { text: " gettext(\"Handling\"),", cursor: [], styles: [], line_num: Some(162) }, Line { text: " gettext(\"for EditView\"),", cursor: [], styles: [], line_num: Some(163) }, Line { text: " self.view_id,", cursor: [], styles: [], line_num: Some(164) }, Line { text: " changes", cursor: [], styles: [], line_num: Some(165) }, Line { text: " );", cursor: [], styles: [], line_num: Some(166) }, Line { text: "", cursor: [], styles: [], line_num: Some(167) }, Line { text: " if let Some(font_size) = changes.font_size {", cursor: [], styles: [], line_num: Some(168) }, Line { text: " let pango_ctx = self.view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(169) }, Line { text: " self.edit_font", cursor: [], styles: [], line_num: Some(170) }, Line { text: " .font_desc", cursor: [], styles: [], line_num: Some(171) }, Line { text: " .set_size(font_size as i32 * pango::SCALE);", cursor: [], styles: [], line_num: Some(172) }, Line { text: " // We\'ve set the new fontsize previously, now we have to regenerate the font height/width etc.", cursor: [], styles: [], line_num: Some(173) }], old_invalid_before: 0, old_invalid_after: 1054, new_lines: [], new_invalid_before: 0, new_invalid_after: 0 } | |
[2019-06-05T21:37:19Z TRACE xrl::cache] operations to be applied: [Operation { operation_type: Copy_, nb_lines: 128, lines: [] }, Operation { operation_type: Copy_, nb_lines: 45, lines: [] }, Operation { operation_type: Insert, nb_lines: 7, lines: [Line { text: " self.edit_font = Font::new(&pango_ctx, self.edit_font.font_desc.clone());\n", cursor: [], styles: [], line_num: Some(174) }, Line { text: " self.view_item.edit_area.queue_draw();\n", cursor: [], styles: [], line_num: Some(175) }, Line { text: " }\n", cursor: [], styles: [], line_num: Some(176) }, Line { text: "\n", cursor: [], styles: [], line_num: Some(177) }, Line { text: " if let Some(font_face) = &changes.font_face {\n", cursor: [], styles: [], line_num: Some(178) }, Line { text: " debug!(\"{}: {}\", gettext(\"Setting edit font to\"), font_face);\n", cursor: [], styles: [], line_num: Some(179) }, Line { text: " let pango_ctx = self.view_item.get_pango_ctx();\n", cursor: [], styles: [], line_num: Some(180) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 49, lines: [] }] | |
[2019-06-05T21:37:19Z INFO xrl::cache] copying 128 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] copying 45 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] inserting 7 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] invalidating 998 lines | |
[2019-06-05T21:37:19Z INFO xrl::cache] invalidating 49 lines | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'get_text_size' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Setting title for EditView 'view-id-1': edit_view.rs | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'update_visible_scroll_region' for EditView 'view-id-1' | |
[2019-06-05T21:37:19Z DEBUG editview::edit_view] Updating visible scroll region 135 183 | |
[2019-06-05T21:37:19Z INFO xrl::client] >>> notification: method=edit, params={"method":"scroll","params":[135,183],"view_id":"view-id-1"} | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] forwarding notification to endpoint (method=edit, params=Object({"method": String("scroll"), "params": Array([Number(135), Number(183)]), "view_id": String("view-id-1")})) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] -> submit external | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> wakeup; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:19Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] sending notification: Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(135), Number(183)]), "view_id": String("view-id-1")}) } | |
[2019-06-05T21:37:19Z DEBUG xrl::protocol::endpoint] sending message to remote peer: Notification(Notification { method: "edit", params: Object({"method": String("scroll"), "params": Array([Number(135), Number(183)]), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::codec] >>> {"method":"edit","params":{"method":"scroll","params":[135,183],"view_id":"view-id-1"}} | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] writing; remaining=88 | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] acknowledging notification. | |
[2019-06-05T21:37:19Z WARN xrl::protocol::endpoint] Failed to send ack to client: () | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Writable Token(4194305) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(0) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::notifier] Notifier::notify; id=0x5618705942b0 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] -> submit internal; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::pool] signal_work -- notify; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] event Readable Token(4194303) | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 3 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 1 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] Task::run; state=Running | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> wakeup; idx=6 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling stream | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(6) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=6 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::codec] <<< {"method":"update","params":{"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":133,"op":"copy"},{"ln":134,"n":47,"op":"copy"},{"lines":[{"ln":181,"styles":[],"text":" self.edit_font = Font::new(\n"},{"ln":182,"styles":[],"text":" &pango_ctx,\n"},{"ln":183,"styles":[],"text":" FontDescription::from_string(&format!(\n"},{"ln":184,"styles":[],"text":" \"{} {}\",\n"},{"ln":185,"styles":[],"text":" font_face,\n"}],"n":5,"op":"ins"},{"n":998,"op":"invalidate"},{"n":44,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"}} | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] frame decoded from buffer | |
[2019-06-05T21:37:19Z DEBUG xrl::protocol::endpoint] handling message from remote peer Notification(Notification { method: "update", params: Object({"update": Object({"annotations": Array([Object({"n": Number(0), "payloads": Null, "ranges": Array([]), "type": String("selection")})]), "ops": Array([Object({"ln": Number(1), "n": Number(133), "op": String("copy")}), Object({"ln": Number(134), "n": Number(47), "op": String("copy")}), Object({"lines": Array([Object({"ln": Number(181), "styles": Array([]), "text": String(" self.edit_font = Font::new(\n")}), Object({"ln": Number(182), "styles": Array([]), "text": String(" &pango_ctx,\n")}), Object({"ln": Number(183), "styles": Array([]), "text": String(" FontDescription::from_string(&format!(\n")}), Object({"ln": Number(184), "styles": Array([]), "text": String(" \"{} {}\",\n")}), Object({"ln": Number(185), "styles": Array([]), "text": String(" font_face,\n")})]), "n": Number(5), "op": String("ins")}), Object({"n": Number(998), "op": String("invalidate")}), Object({"n": Number(44), "op": String("invalidate")})]), "pristine": Bool(true)}), "view_id": String("view-id-1")}) }) | |
[2019-06-05T21:37:19Z INFO xrl::frontend] <<< notification: method=update, params={"update":{"annotations":[{"n":0,"payloads":null,"ranges":[],"type":"selection"}],"ops":[{"ln":1,"n":133,"op":"copy"},{"ln":134,"n":47,"op":"copy"},{"lines":[{"ln":181,"styles":[],"text":" self.edit_font = Font::new(\n"},{"ln":182,"styles":[],"text":" &pango_ctx,\n"},{"ln":183,"styles":[],"text":" FontDescription::from_string(&format!(\n"},{"ln":184,"styles":[],"text":" \"{} {}\",\n"},{"ln":185,"styles":[],"text":" font_face,\n"}],"n":5,"op":"ins"},{"n":998,"op":"invalidate"},{"n":44,"op":"invalidate"}],"pristine":true},"view_id":"view-id-1"} | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_read] attempting to decode a frame | |
[2019-06-05T21:37:19Z TRACE gxi::main_win] Handling XiEvent: Update(Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 133, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: " self.edit_font = Font::new(\n", cursor: [], styles: [], line_num: Some(181) }, Line { text: " &pango_ctx,\n", cursor: [], styles: [], line_num: Some(182) }, Line { text: " FontDescription::from_string(&format!(\n", cursor: [], styles: [], line_num: Some(183) }, Line { text: " \"{} {}\",\n", cursor: [], styles: [], line_num: Some(184) }, Line { text: " font_face,\n", cursor: [], styles: [], line_num: Some(185) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 44, lines: [] }], pristine: true, view_id: ViewId(1) }) | |
[2019-06-05T21:37:19Z TRACE gxi::main_win] Handling 'update': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 133, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: " self.edit_font = Font::new(\n", cursor: [], styles: [], line_num: Some(181) }, Line { text: " &pango_ctx,\n", cursor: [], styles: [], line_num: Some(182) }, Line { text: " FontDescription::from_string(&format!(\n", cursor: [], styles: [], line_num: Some(183) }, Line { text: " \"{} {}\",\n", cursor: [], styles: [], line_num: Some(184) }, Line { text: " font_face,\n", cursor: [], styles: [], line_num: Some(185) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 44, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:19Z DEBUG tokio_reactor::registration] scheduling Read for: 0 | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new message in the stream | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending requests | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling pending notification tasks | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client requests channel | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new request from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] polling client notifications channel | |
[2019-06-05T21:37:19Z TRACE editview::edit_view] Handling 'update' for EditView 'view-id-1': Update { rev: None, operations: [Operation { operation_type: Copy_, nb_lines: 133, lines: [] }, Operation { operation_type: Copy_, nb_lines: 47, lines: [] }, Operation { operation_type: Insert, nb_lines: 5, lines: [Line { text: " self.edit_font = Font::new(\n", cursor: [], styles: [], line_num: Some(181) }, Line { text: " &pango_ctx,\n", cursor: [], styles: [], line_num: Some(182) }, Line { text: " FontDescription::from_string(&format!(\n", cursor: [], styles: [], line_num: Some(183) }, Line { text: " \"{} {}\",\n", cursor: [], styles: [], line_num: Some(184) }, Line { text: " font_face,\n", cursor: [], styles: [], line_num: Some(185) }] }, Operation { operation_type: Invalidate, nb_lines: 998, lines: [] }, Operation { operation_type: Invalidate, nb_lines: 44, lines: [] }], pristine: true, view_id: ViewId(1) } | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] no new notification from client | |
[2019-06-05T21:37:19Z TRACE xrl::protocol::endpoint] flushing stream | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] flushing framed transport | |
[2019-06-05T21:37:19Z TRACE tokio_io::_tokio_codec::framed_write] framed transport flushed | |
[2019-06-05T21:37:19Z TRACE xrl::cache] updating the line cache | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::task] -> not ready | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] Worker::sleep; worker=WorkerId(7) | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] sleeping -- push to stack; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_threadpool::worker] -> starting to sleep; idx=7 | |
[2019-06-05T21:37:19Z TRACE tokio_reactor] loop process - 0 events, 0.000s | |
[2019-06-05T21:37:19Z TRACE xrl::cache] cache state before: UpdateHelper { old_lines: [Line { text: "use crate::fonts::Font;", cursor: [0], styles: [], line_num: Some(1) }, Line { text: "use crate::main_state::{MainState, Settings};", cursor: [], styles: [], line_num: Some(2) }, Line { text: "use crate::theme::{color_from_u32, set_margin_source_color, set_source_color, PangoColor};", cursor: [], styles: [], line_num: Some(3) }, Line { text: "use crate::view_item::*;", cursor: [], styles: [], line_num: Some(4) }, Line { text: "use cairo::Context;", cursor: [], styles: [], line_num: Some(5) }, Line { text: "use futures::future;", cursor: [], styles: [], line_num: Some(6) }, Line { text: "use gdk::enums::key;", cursor: [], styles: [], line_num: Some(7) }, Line { text: "use gdk::*;", cursor: [], styles: [], line_num: Some(8) }, Line { text: "use gettextrs::gettext;", cursor: [], styles: [], line_num: Some(9) }, Line { text: "use glib::source;", cursor: [], styles: [], line_num: Some(10) }, Line { text: "use gtk::{self, *};", cursor: [], styles: [], line_num: Some(11) }, Line { text: "use log::{debug, trace, warn};", cursor: [], styles: [], line_num: Some(12) }, Line { text: "use pango::{self, ContextExt, LayoutExt, *};", cursor: [], styles: [], line_num: Some(13) }, Line { text: "use pangocairo::functions::*;", cursor: [], styles: [], line_num: Some(14) }, Line { text: "use std::cell::RefCell;", cursor: [], styles: [], line_num: Some(15) }, Line { text: "use std::cmp::{max, min};", cursor: [], styles: [], line_num: Some(16) }, Line { text: "use std::rc::Rc;", cursor: [], styles: [], line_num: Some(17) }, Line { text: "use std::u32;", cursor: [], styles: [], line_num: Some(18) }, Line { text: "use xrl::StyleDef as StyleSpan;", cursor: [], styles: [], line_num: Some(19) }, Line { text: "use xrl::{Client, ConfigChanges, Line, LineCache, Query, Status, Update, ViewId};", cursor: [], styles: [], line_num: Some(20) }, Line { text: "", cursor: [], styles: [], line_num: Some(21) }, Line { text: "/// Returned by `EditView::get_text_size()` and used to adjust the scrollbars.", cursor: [], styles: [], line_num: Some(22) }, Line { text: "pub struct TextSize {", cursor: [], styles: [], line_num: Some(23) }, Line { text: " /// The height of the entire document", cursor: [], styles: [], line_num: Some(24) }, Line { text: " height: f64,", cursor: [], styles: [], line_num: Some(25) }, Line { text: " /// The width of the entire document", cursor: [], styles: [], line_num: Some(26) }, Line { text: " width: f64,", cursor: [], styles: [], line_num: Some(27) }, Line { text: " /// If the height of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(28) }, Line { text: " contained_height: bool,", cursor: [], styles: [], line_num: Some(29) }, Line { text: " /// If the width of the document is contained within the edit_area (if it\'s smaller)", cursor: [], styles: [], line_num: Some(30) }, Line { text: " contained_width: bool,", cursor: [], styles: [], line_num: Some(31) }, Line { text: "}", cursor: [], styles: [], line_num: Some(32) }, Line { text: "", cursor: [], styles: [], line_num: Some(33) }, Line { text: "/// The EditView is the part of gxi that does the actual editing. This is where you edit documents.", cursor: [], styles: [], line_num: Some(34) }, Line { text: "pub struct EditView {", cursor: [], styles: [], line_num: Some(35) }, Line { text: " core: Client,", cursor: [], styles: [], line_num: Some(36) }, Line { text: " main_state: Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(37) }, Line { text: " pub view_id: ViewId,", cursor: [], styles: [], line_num: Some(38) }, Line { text: " pub file_name: Option<String>,", cursor: [], styles: [], line_num: Some(39) }, Line { text: " pub pristine: bool,", cursor: [], styles: [], line_num: Some(40) }, Line { text: " pub root_widget: Grid,", cursor: [], styles: [], line_num: Some(41) }, Line { text: " pub top_bar: TopBar,", cursor: [], styles: [], line_num: Some(42) }, Line { text: " pub view_item: ViewItem,", cursor: [], styles: [], line_num: Some(43) }, Line { text: " line_cache: LineCache,", cursor: [], styles: [], line_num: Some(44) }, Line { text: " pub(crate) find_replace: FindReplace,", cursor: [], styles: [], line_num: Some(45) }, Line { text: " edit_font: Font,", cursor: [], styles: [], line_num: Some(46) }, Line { text: " interface_font: Font,", cursor: [], styles: [], line_num: Some(47) }, Line { text: " im_context: IMContextSimple,", cursor: [], styles: [], line_num: Some(48) }, Line { text: "}", cursor: [], styles: [], line_num: Some(49) }, Line { text: "", cursor: [], styles: [], line_num: Some(50) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(51) }, Line { text: " /// Initialises a new EditView. Sets up scrollbars, the actual editing area, the fonts,", cursor: [], styles: [], line_num: Some(52) }, Line { text: " /// the syntax lang and connects all events which might happen during usage (e.g. scrolling)", cursor: [], styles: [], line_num: Some(53) }, Line { text: " pub fn new(", cursor: [], styles: [], line_num: Some(54) }, Line { text: " main_state: &Rc<RefCell<MainState>>,", cursor: [], styles: [], line_num: Some(55) }, Line { text: " core: &Client,", cursor: [], styles: [], line_num: Some(56) }, Line { text: " // The FindReplace dialog is relative to this", cursor: [], styles: [], line_num: Some(57) }, Line { text: " hamburger_button: &MenuButton,", cursor: [], styles: [], line_num: Some(58) }, Line { text: " file_name: Option<String>,", cursor: [], styles: [], line_num: Some(59) }, Line { text: " view_id: ViewId,", cursor: [], styles: [], line_num: Some(60) }, Line { text: " parent: &ApplicationWindow,", cursor: [], styles: [], line_num: Some(61) }, Line { text: " ) -> Rc<RefCell<Self>> {", cursor: [], styles: [], line_num: Some(62) }, Line { text: " trace!(\"{}, \'{}\'\", gettext(\"Creating new EditView\"), view_id);", cursor: [], styles: [], line_num: Some(63) }, Line { text: " let view_item = ViewItem::new();", cursor: [], styles: [], line_num: Some(64) }, Line { text: " let find_replace = FindReplace::new(&hamburger_button);", cursor: [], styles: [], line_num: Some(65) }, Line { text: " let pango_ctx = view_item.get_pango_ctx();", cursor: [], styles: [], line_num: Some(66) }, Line { text: " let im_context = IMContextSimple::new();", cursor: [], styles: [], line_num: Some(67) }, Line { text: " let interface_font = Self::get_interface_font(&main_state.borrow().settings, &pango_ctx);", cursor: [], styles: [], line_num: Some(68) }, Line { text: "", cursor: [], styles: [], line_num: Some(69) }, Line { text: " let edit_view = Rc::new(RefCell::new(Self {", cursor: [], styles: [], line_num: Some(70) }, Line { text: " core: core.clone(),", cursor: [], styles: [], line_num: Some(71) }, Line { text: " main_state: main_state.clone(),", cursor: [], styles: [], line_num: Some(72) }, Line { text: " file_name,", cursor: [], styles: [], line_num: Some(73) }, Line { text: " pristine: true,", cursor: [], styles: [], line_num: Some(74) }, Line { text: " view_id,", cursor: [], styles: [], line_num: Some(75) }, Line { text: " root_widget: view_item.root_box.clone(),", cursor: [], styles: [], line_num: Some(76) }, Line { text: " top_bar: TopBar::new(),", cursor: [], styles: [], line_num: Some(77) }, Line { text: " view_item: view_item.clone(),", cursor: [], styles: [], line_num: Some(78) }, Line { text: " line_cache: LineCache::default(),", cursor: [], styles: [], line_num: Some(79) }, Line { text: " edit_font: Self::get_edit_font(&pango_ctx, &main_state.borrow().settings.edit_font),", cursor: [], styles: [], line_num: Some(80) }, Line { text: " interface_font,", cursor: [], styles: [], line_num: Some(81) }, Line { text: " find_replace: find_replace.clone(),", cursor: [], styles: [], line_num: Some(82) }, Line { text: " im_context: im_context.clone(),", cursor: [], styles: [], line_num: Some(83) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(84) }, Line { text: "", cursor: [], styles: [], line_num: Some(85) }, Line { text: " edit_view.borrow_mut().update_title();", cursor: [], styles: [], line_num: Some(86) }, Line { text: "", cursor: [], styles: [], line_num: Some(87) }, Line { text: " view_item.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(88) }, Line { text: " find_replace.connect_events(&edit_view);", cursor: [], styles: [], line_num: Some(89) }, Line { text: " EditView::connect_im_events(&edit_view, &im_context);", cursor: [], styles: [], line_num: Some(90) }, Line { text: " //edit_view.borrow().connect_gschema(&gschema);", cursor: [], styles: [], line_num: Some(91) }, Line { text: "", cursor: [], styles: [], line_num: Some(92) }, Line { text: " im_context.set_client_window(parent.get_window().as_ref());", cursor: [], styles: [], line_num: Some(93) }, Line { text: "", cursor: [], styles: [], line_num: Some(94) }, Line { text: " edit_view", cursor: [], styles: [], line_num: Some(95) }, Line { text: " }", cursor: [], styles: [], line_num: Some(96) }, Line { text: "", cursor: [], styles: [], line_num: Some(97) }, Line { text: " fn connect_im_events(edit_view: &Rc<RefCell<EditView>>, im_context: &IMContextSimple) {", cursor: [], styles: [], line_num: Some(98) }, Line { text: " im_context.connect_commit(enclose!((edit_view) move |_, text| {", cursor: [], styles: [], line_num: Some(99) }, Line { text: " let ev = edit_view.borrow();", cursor: [], styles: [], line_num: Some(100) }, Line { text: " ev.core.insert(ev.view_id, text);", cursor: [], styles: [], line_num: Some(101) }, Line { text: " }));", cursor: [], styles: [], line_num: Some(102) }, Line { text: " }", cursor: [], styles: [], line_num: Some(103) }, Line { text: "", cursor: [], styles: [], line_num: Some(104) }, Line { text: " fn get_interface_font(settings: &Settings, pango_ctx: &pango::Context) -> Font {", cursor: [], styles: [], line_num: Some(105) }, Line { text: " Font::new(", cursor: [], styles: [], line_num: Some(106) }, Line { text: " &pango_ctx,", cursor: [], styles: [], line_num: Some(107) }, Line { text: " FontDescription::from_string(&settings.interface_font),", cursor: [], styles: [], line_num: Some(108) }, Line { text: " )", cursor: [], styles: [], line_num: Some(109) }, Line { text: " }", cursor: [], styles: [], line_num: Some(110) }, Line { text: "", cursor: [], styles: [], line_num: Some(111) }, Line { text: " fn get_edit_font(pango_ctx: &pango::Context, font: &str) -> Font {", cursor: [], styles: [], line_num: Some(112) }, Line { text: " Font::new(pango_ctx, FontDescription::from_string(&font))", cursor: [], styles: [], line_num: Some(113) }, Line { text: " }", cursor: [], styles: [], line_num: Some(114) }, Line { text: "}", cursor: [], styles: [], line_num: Some(115) }, Line { text: "", cursor: [], styles: [], line_num: Some(116) }, Line { text: "impl EditView {", cursor: [], styles: [], line_num: Some(117) }, Line { text: " /// Set the name of the file the EditView is currently editing and calls [update_title](struct.EditView.html#method.update_title)", cursor: [], styles: [], line_num: Some(118) }, Line { text: " pub fn set_file(&mut self, file_name: &str) {", cursor: [], styles: [], line_num: Some(119) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(120) }, Line { text: " \"{} \'FindReplace\' {} \'{}\'\",", cursor: [], styles: [], line_num: Some(121) }, Line { text: " gettext(\"Connecting\"),", cursor: [], styles: [], line_num: Some(122) }, Line { text: " gettext(\"events for EditView\"),", cursor: [], styles: [], line_num: Some(123) }, Line { text: " self.view_id", cursor: [], styles: [], line_num: Some(124) }, Line { text: " );", cursor: [], styles: [], line_num: Some(125) }, Line { text: " self.file_name = Some(file_name.to_string());", cursor: [], styles: [], line_num: Some(126) }, Line { text: " self.update_title();", cursor: [], styles: [], line_num: Some(127) }, Line { text: " }", cursor: [], styles: [], line_num: Some(128) }, Line { text: "", cursor: [], styles: [], line_num: Some(129) }, Line { text: " /// Update the title of the EditView to the currently set file_name", cursor: [], styles: [], line_num: Some(130) }, Line { text: " fn update_title(&self) {", cursor: [], styles: [], line_num: Some(131) }, Line { text: " let title = match self.file_name {", cursor: [], styles: [], line_num: Some(132) }, Line { text: " Some(ref f) => f", cursor: [], styles: [], line_num: Some(133) }, Line { text: " .split(::std::path::MAIN_SEPARATOR)", cursor: [], styles: [], line_num: Some(134) }, Line { text: " .last()", cursor: [], styles: [], line_num: Some(135) }, Line { text: " .unwrap_or(&gettext(\"Untitled\"))", cursor: [], styles: [], line_num: Some(136) }, Line { text: " .to_string(),", cursor: [], styles: [], line_num: Some(137) }, Line { text: " None => gettext(\"Untitled\"),", cursor: [], styles: [], line_num: Some(138) }, Line { text: " };", cursor: [], styles: [], line_num: Some(139) }, Line { text: "", cursor: [], styles: [], line_num: Some(140) }, Line { text: " let mut full_title = String::new();", cursor: [], styles: [], line_num: Some(141) }, Line { text: " if !self.pristine {", cursor: [], styles: [], line_num: Some(142) }, Line { text: " full_title.push(\'*\');", cursor: [], styles: [], line_num: Some(143) }, Line { text: " }", cursor: [], styles: [], line_num: Some(144) }, Line { text: " full_title.push_str(&title);", cursor: [], styles: [], line_num: Some(145) }, Line { text: "", cursor: [], styles: [], line_num: Some(146) }, Line { text: " trace!(", cursor: [], styles: [], line_num: Some(147) }, Line { text: " \"{} \'{}\': {}\",", cursor: [], styles: [], line_num: Some(148) }, Line { text: " gettext(\"Setting title for EditView\"),", cursor: [], styles: [], line_num: Some(149) }, Line { text: " self.view_id,", cursor: [], styles: [], line_num: Some(150) }, Line { text: " full_title", cursor: [], styles: [], line_num: Some(151) }, Line { text: " );", cursor: [], styles: [], line_num: Some(152) }, Line { text: " self.top_bar.label.set_text(&full_title);", cursor: [], styles: [], line_num: Some(153) }, Line { text: " }", cursor: [], styles: [], line_num: Some(154) }, Line { text: "", cursor: [], styles: [], line_num: Some(155) }, Line { text: " /// If xi-editor sends us a [config_changed](https://xi-editor.io/docs/frontend-protocol.html#config_changed)", cursor: [], styles: [], line_num: Some(156) }, Line { text: " /// msg we process it here, e.g. setting the font face/size xi-editor tells us. Most configs don\'t", cursor: [], styles: [], line_num: Some(157) }, Line { text: " /// need special handling by us though.", cursor: [], styles: [], line_num: Some(158) }, Line { text: " pub fn config_changed(&mut self, changes: &ConfigChanges) {", cursor: [], styles: [], line_num: Some(159) }, Line { t |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment