0 scintilla2 雑感

項目なりシンチラ入力速度ScintillaのIMEの実験改めて文字コードについて 191008高速化scieditor2 機能拡張model データの書き出しについて 190926

シンチラ入力速度

  • 2M弱の文書なんだがかな漢字変換が凄く遅い事に気づいた
    キーがキューにたまってる感じで変換前の入力だけでかなり遅い
    これじゃ使えん ┐('д')┌
  • いろいろ試してみたら、大きなファイルの先頭では問題ないが後ろに行くほど遅くなることがわかった
  • かな変換ほどではないがアルファベットも遅くなる
  • 秀丸とgPadで試したらそういった症状はない
  • 仕様ですね ┐('д')┌
    無料のコンポーネントだから文句も言えないが・・・
    何かの設定で速くなるんだろうか
    レクサは設定してないんだけどな
  • C++ で実装したら違うんだろうか?
    NotePad++で実験してみるか

ScintillaのIMEの実験

  1. 変換前のかな文字について、カーソルで部分選択が出来ないこと
    NotePad++でも出来なかった( ´∀`)
    仕様ですな
    でも表示のされ方が少し違ってた
    実装方法が違うのかな??
    工夫の余地があるんだろうか

  2. 大きなファイルの後方での遅延
    NotePad++では遅延はなかった!!!(゚Д゚)
    私のコーディングが悪いのか?
    遅延の理由はレクサのような気がしてる
    ファイルの後方で生じるから、頭からレクサ処理をしていて遅いのかなと

今は拡張子pyのpythonファイルにのみレクサを設定している
しかし起動時に空のレクサを設定していたような気がする
これが地味に悪さをしているのかもしれない・・・


改めて文字コードについて 191008

  • 保存できない文字コードがあったらエラーを返す仕様だった
    でもそのあとを考えてなかった
    とりあえずエラー位置に飛べるようにはしたが、u8で保存すれば解決することはわかってる
    cp932にこだわってエラー文字を直すのは無駄なんだよねえ
    エラーになった文字が何だったのかは知りたいから飛ぶ機能はあって良いんだけどさ
  • でもなあ、何となくcp932を残しておきたいって思いもある
    ロード時のエンコに関係なく保存時は全てu8にしちゃえば良いだけなんだけども
  • 「保存時のエンコードを指定」の機能は必要かもしれない
    コンボボックスで選択かな?チェックボックスでも良いか
    でもデザイナのUIは作りたくないな~
  • 「強制的にU8で保存」にするか!!
    「本当に良いですか」を出したりして

高速化

scieditor2 は結構完成度が高いと思う
自作だから当たり前だけど凄く使いやすいし
今はこまごまと機能を追加してるが根本的に直したい部分はあんまり思い浮かばない
強いて言えば高速化かな
となるとC++ですよね~

python は遅いって事になってるけどキャッシュされればそれほどでもない
遅いのは最初だけって事ですね
あえてC++でコンパイルする意味があるのか??
python のままで極力高速化できるようにした方が良いかな

scieditor2 機能拡張

色んな機能を本体では無くて後付けで実装したい
プラグイン形式では無理かな
起動高速化のために起動時はチェックしない仕組みで

gPad はオブジェクトを提供してユーザーに使わせる仕組み
文法はWSH
どういう仕組みなんじゃ!!!

とりあえずシンチラの付加機能的なものは別クラスにまとめた方がすっきりするかも
起動は少し速くなるんじゃろうか??

model データの書き出しについて 190926

treeView の model の書き出しだけど
ストレートにmodelのデータをスキャンするようなコードにしたが、オリジナル文書から解析ロジックそのままで書き出すことも出来たなあ
全く別なロジックを考えたので無駄だったような??
modelをスキャンした方が早いはずだから正解だったのかな?

オリジナル文書からって事になると解析ロジックはいらない、単に検索して該当行を抽出するだけで良かったのか
現在の行単位検索でもいけたな
modelの書き出しではなくて検索結果の書き出しを実装すれば良いだけだったか!!

アウトラインの指定項目を選択、って機能は必要だけどmodelの書き出しはいらなかったのか
行単位検索の出力のオプションで実装するだけで良かったような気がしてきた

頭の体操にはなったから良いんだけども (ノ゚o゚)ノ


└──> scieditor2

0

メモを他の人に見せる

このメモを見せたい人に、このURL(今開いているページのURLです)を教えてあげてください

コメント(0)

  • someone

  • someone