Coder Social home page Coder Social logo

sakura_modifed's Introduction

sakura_modifed's People

Contributors

beru avatar

Watchers

James Cloos avatar  avatar

sakura_modifed's Issues

Global Plugin 前回の検索パラメータを記憶する

GlobalPluginのオプション設定画面で検索方法を共通で設定するのではなく、タグファイルジャンプ一覧画面の検索設定を保存復帰するようにする。

設定ダイアログからは検索パラメータ設定は無くす。

左上の分割ウィンドウにキャレット表示している際に、他の分割ウインドウをマウスクリックしてもキャレットが切り替わらない

Ctrl + Tabキー押しで分割ウィンドウへのキャレット切り替えは行える事が出来る

左右分割の場合

左の分割ウィンドウにキャレットがある際に右の分割ウィンドウをクリックしてもキャレットが切り替わらない。

上下分割の場合

上の分割ウィンドウにキャレットがある際に下の分割ウィンドウをクリックしてもキャレットが切り替わらない。

上下左右分割の場合

左上の分割ウィンドウにキャレットがある際に他の分割ウィンドウをクリックしてもキャレットが切り替わらない。左上ではない分割ウィンドウにキャレットがある場合でも他の分割ウィンドウをクリックすると常に左上の分割ウィンドウにキャレットが切り替わる。

ファイル読み込み時に行単位でUnicodeに文字変換を行う際に、変換メソッドで毎度変換先バッファを確保しているので、そうせずに使いまわすようにする。

sakura.exe!CShiftJis::SJISToUnicode(const CMemory & cSrc, CNativeW * pDstMem) Line 114 C++
sakura.exe!CShiftJis::CodeToUnicode(const CMemory & cSrc, CNativeW * pDst) Line 35 C++
sakura.exe!CIoBridge::FileToImpl(const CMemory & cSrc, CNativeW * pDst, CCodeBase * pCode, int nFlag) Line 16 C++
sakura.exe!CFileLoad::ReadLine_core(CNativeW * pUnicodeBuffer, CEol * pcEol) Line 370 C++
sakura.exe!CFileLoad::ReadLine(CNativeW * pUnicodeBuffer, CEol * pcEol) Line 264 C++
sakura.exe!CReadManager::ReadFile_To_CDocLineMgr(CDocLineMgr * pcDocLineMgr, const SLoadInfo & sLoadInfo, SFileInfo * pFileInfo) Line 106 C++
sakura.exe!CLoadAgent::OnLoad(const SLoadInfo & sLoadInfo) Line 215 C++

呼び出し経路は上のようになっている。

test

@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
 
Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml

タブバー使用時のタブ切替時に不必要に表示がちらつく現象が起きないようにする。

ウィンドウのタイトルバーのタイトル表示が一瞬非アクティブ時の表示に切り替わった後に、アクティブ時の表示になる。
またWindowsのシェルExplorerのタスクバーのボタンも不必要に変化する。

使っているユーザーとしてはタブアプリのタブを切り替えているのに過ぎないので不必要な表示更新は無くした方が良いけれど、実装としてはWindows切り替えを行っているだろうから対処が難しいような気がする。

レイアウトの解放処理に時間が掛かり過ぎる

void CLayoutMgr::_Empty()
{
    CLayout* pLayout = m_pLayoutTop;
    while (pLayout) {
        CLayout* pLayoutNext = pLayout->GetNextLayout();
        delete pLayout;
        pLayout = pLayoutNext;
    }
}

Doubly linked list のデータ構造で手繰って全てを解放する処理があるが、ノード数が多いと時間が掛かる。

Call stackは下記のようになっている。

    sakura.exe!CLayoutMgr::_Empty() Line 98 C++
    sakura.exe!CLayoutMgr::~CLayoutMgr() Line 60    C++
    sakura.exe!CEditDoc::~CEditDoc() Line 227   C++
    [External Code] 
    sakura.exe!CEditApp::~CEditApp() Line 93    C++

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.