crftwr / lredit Goto Github PK
View Code? Open in Web Editor NEWpython based text editor
License: MIT License
python based text editor
License: MIT License
ckit_textwidget.py の _destroy だけで flock.unlock() しているのを変える
すでにLREditが起動しているときに、DockのアイコンにファイルをD&Dしたとき、無視されてしまう。
既存のウインドウの追加のタブとして開くようにしたい。
open -a /Applications/LREdit.app を実行したときも、同じ方法で処理できるかも。
—�—
スクロールバーをWindowsの標準的なソフトと同じようにマウスでつかんだりクリックしてジャンプできるとうれしいのですが、こちらご対応の予定はありますでしょうか。
もしくはソースコードを改良するとしたらどこの部分に手を加えればいいか、さわりだけでもご教授いただけませんでしょうか。
括弧だけを強調するのではなくて、
背景色を使うなど、括弧の中が色づけ表示されると、みやすいかも。
あるいは、括弧が一瞬フラッシュすると見やすいかも。
ビルド呼び出し機能
あるいは、任意のコマンドラインプログラムを呼び出す機能
その出力に含まれるエラー行にジャンプする機能も必要
LREdit version :
Traceback (most recent call last):
File ".\lredit_mainwindow.py", line 1395, in _onKeyDown
File "../ckit\ckit_command.py", line 28, in call
File ".\lredit_mainwindow.py", line 1983, in executeCommand
File ".\lredit_mainwindow.py", line 4368, in command_Close
File ".\lredit_mainwindow.py", line 2720, in _close
File "../ckit\ckit_textwidget.py", line 1297, in destroy
File "../ckit\ckit_textwidget.py", line 775, in removeReference
File "../ckit\ckit_textwidget.py", line 760, in _destroy
File "../ckit\ckit_misc.py", line 561, in unlock
FileNotFoundError: [WinError 2] The system cannot find the file specified.
Traceback (most recent call last):
File ".\lredit_mainwindow.py", line 1395, in _onKeyDown
File "../ckit\ckit_command.py", line 28, in call
File ".\lredit_mainwindow.py", line 1983, in executeCommand
File ".\lredit_mainwindow.py", line 4368, in command_Close
File ".\lredit_mainwindow.py", line 2701, in _close
AttributeError: 'NoneType' object has no attribute 'isDiffColorMode'
Traceback (most recent call last):
File ".\lredit_mainwindow.py", line 1395, in _onKeyDown
File "../ckit\ckit_command.py", line 28, in call
File ".\lredit_mainwindow.py", line 1983, in executeCommand
File ".\lredit_mainwindow.py", line 4368, in command_Close
File ".\lredit_mainwindow.py", line 2701, in _close
AttributeError: 'NoneType' object has no attribute 'isDiffColorMode'
Traceback (most recent call last):
File ".\lredit_mainwindow.py", line 1395, in _onKeyDown
File "../ckit\ckit_command.py", line 28, in call
File ".\lredit_mainwindow.py", line 1983, in executeCommand
File ".\lredit_mainwindow.py", line 4368, in command_Close
File ".\lredit_mainwindow.py", line 2701, in _close
AttributeError: 'NoneType' object has no attribute 'isDiffColorMode'
Traceback (most recent call last):
File ".\lredit_mainwindow.py", line 1395, in _onKeyDown
File "../ckit\ckit_command.py", line 28, in call
File ".\lredit_mainwindow.py", line 1983, in executeCommand
File ".\lredit_mainwindow.py", line 4368, in command_Close
File ".\lredit_mainwindow.py", line 2701, in _close
AttributeError: 'NoneType' object has no attribute 'isDiffColorMode'
ckitcore.Line を拡張して、文字列をメモリからオフロードする機能を追加
文字列を参照したら、自動でロードする?
メモリの使いすぎを検出して、要らなそうな行をオフロードする。
編集中の元ファイルを参照する?
編集中のファイルが他のプログラムから更新されてしまったらどうする?
編集中はファイルをロックする?
変更された部分はメモリに持つ必要がある?
それとも、変更した部分も、一時ファイルにオフロードできるようにする?
ファイルを保存するとき、単純に先頭から書き込んでいくと、オフロードして参照している部分を壊してしまう。
参照している部分を壊さない順序でファイルを保存する方法はある?
別名でファイルを保存して、変名するしかない?
LREdit で2画面で同じファイルを編集中、左のウインドウで長い行で右のほうにキャレットを移動すると、右のウインドウで横スクロールしてしまう。
Projectを作らなくても、TAGSジャンプが使えると便利
GenerateTags が Project をロードしてない時にも使えるように。
そのとき、ファイルリストはどのようにして定義するのか。
Tagsファイルさえ作ったら、LoadTagsはプロジェクトファイルなしでも使える
プロジェクトが簡単に作れさえすれば、Tagsを作るハードルが下げられるので、プロジェクトファイルなしでTagsを作れなくれもよいかも。
HTML 内の JavaScript や CSS のシンタックスハイライト
Lexerを入れ子にできる仕組みを考える
HtmlLexer の メンバ変数に JavaScriptLexerのオブジェクトを持たせて、
lex() が 呼ばれたら、JavaScriptLexerの lex() を呼ぶようにする?
NULLが含まれているようなファイルも、無理やり開きたい。
その必要がない場合は、テンポラリファイルを使わず直接書く
読み込み中にプログレスバーを出す。
書き出し中にプログレスバーを出す。
Lineの中身をOffloadするだけでは行数の多いファイルを開けるようにはならない。
大きいファイルの読み込みをバックグラウンドで行う。
大きいファイルの書き出しをバックグラウンドで行う。
Grep、Compare とかも巨大ファイルに対応したい。
変更された行もオフロード可能にする。(テンポラリの作業用ファイルを使う)
Undo / Redo のメモリ消費量が大きくなる時、警告を出したうえで、変更をキャンセルするべき
ckitcore.Line を拡張して、文字列をメモリからオフロードする機能を追加
文字列を参照したら、自動でロードする?
メモリの使いすぎを検出して、要らなそうな行をオフロードする。
編集中の元ファイルを参照する?
編集中のファイルが他のプログラムから更新されてしまったらどうする?
編集中はファイルをロックする?
変更された部分はメモリに持つ必要がある?
それとも、変更した部分も、一時ファイルにオフロードできるようにする?
ファイルを保存するとき、単純に先頭から書き込んでいくと、オフロードして参照している部分を壊してしまう。
参照している部分を壊さない順序でファイルを保存する方法はある?
別名でファイルを保存して、変名するしかない?
上書きモード
マイナーモードで実現?
しかしマイナーモードで実現すると、TextEditWidgetごとに独立の設定になってしまう。。。
Xyzzy では、マイナーモードで実現されて入るようだけど、全部のバッファに影響するようだ。
Global MinorMode みたいな概念がある?
上書きモードと、IMEの再変換って、共存できる?
DiffのJumpのとき、文字単位で差分を表示する方法を考える。
せめて、Output Window に、2行を並べて出力したら
目視しやすいかも。
内骨格と密な連携
プロジェクトファイルを必要としない、簡易的な作業環境構築方法として。
OpenDirectory コマンドを追加
- ディレクトリとワイルドカードを指定する
CloseDirectory コマンドを追加
ProjectFileList を廃止して、OpenDirectoryで開いているディレクトリからファイルをリストアップする
GenerateTagsの動作を変更
- OpenDirectory で開いているディレクトリに対して、別々に Tags を作る。
LoadTags を廃止して、OpenDirectory で開いているディレクトリの tags を自動でロードする
*.lre ファイルを廃止
- OpenProject / CloseProject / EditProject 廃止
RecentProjects を廃止して、RecentDirectoryを追加
Grepも、OpenDirectoryで開いているディレクトリを対象にする。
OpenDirectoryで開いているディレクトリは、次回の起動時にも再現する
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.