scieditor2 hoge version 68

2019/09/10 16:39 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
scieditor2   hoge
@[TOC](項目なり)

# 検索の独自実装
- ヒットした個数が知りたい
内部的にはリストかタプルで個数を保持していると思う、ネクストはイテレートしてるのでは?
取得できるか調べてみる

- アウトラインビューにヒットした行を表示する
analyzetree を参考にコーディングする
analyzetreeは行文字を頭打ちにしてるが全て取得しなければならない
検索ウイジェットにボタンを追加「DispLine」
①行を取得する
②検索文字が含まれているかチェック
③含まれていたらツリービューのモデルにappendする -->(行)先頭から10文字、行
④50行超えたら append は中止
⑤ステータスバーにヒット行数を表示する
⑥ビューにモデルをセットする

- カスタムレクサの切替でも良いのでは無いか
検索文字をハイライト表示、htmlなら普通ですよね

# gPad の罫線機能を実装

# 行内の数字加算機能
シンチラ派生クラスのキーにバインド
①現在行文字列を取得
②n桁の数字を検索抽出
③リスト化されて帰るのでその要素を全て加算
④行末に文字列追加~ |***
```
import re

def countnum(self):
    # 行文字列取得
    line , index = 0 , 0
    self.getCursorPosition( line , index )
    result = re.findall(r'\d{1,}',  self.text( line) )
    p= sum( [ int(l) for l in result ] )
    p='| ' + str( p )     # 挿入文字列
    self.insertAt ( p , line , len(  self.text(line).length() ) )

# self.text(line).length()   ---> character
# int QsciScintilla::lineLength  ( int  line ) const ---> bytes
# QsciScintilla.:insertAt  ( const QString &  text,   int  line,  int  index  ) 
# void QsciScintilla::getCursorPosition  ( int *  line,   int *  index   )  const 
```

# ボックス選択した範囲内の数字を加算する機能




# setutf8
今注釈行にしてるのを解除してみる
u8,s-jis が綺麗に保存されることを確認
文書のエンコードを変更できるようにしておく(保存時の)
# テキスト用カスタムレクサ
https://qscintilla.com/
# タブにコンテキストつけて全て閉じるとか実装
- しかしこれなくても良い、簡単だけど
何となく次々と機能増やしたらいつかすごく遅くなってたりするんじゃないのかなって思ったりした
# GrEP
- 前に作ったルーチンを使う
ヒットしたファイルは新規タブを作って表示していく
ダブルクリックで飛びたい
- ディレクトリ選択型ダイアログ
http://qt-log.open-memo.net/sub/dialog__directory_dialog.html


# tryのexceptionを全て表示

# お気に入りのフォルダ sql 化
- sql 化する前に実験する
①treeview とボタンだけのダイアログをdesignerで作って実験する
ボタン:ok : cancel : insFolda
②ドラッグでファイルを追加できること、DDで順番を変更できること
③その順番でsqlで書き出しできること、読みこみできること



- **アウトラインクリック時の挙動も確認**
アウトライン行+10を第1行目にしてみたらどうだろう

# s-barのクラス設計
class mysbar():
def init(p):# p -> statusbr
 pにラベルを三つセットする
 self.label[]
def settext( str , id ) : # id -> 表示する場所、そのほか特殊メッセ
 if id<3 :
   self.label[id].setext(str)
 elif id==4 : # save message
   self.savemes()
 else:
   pass
def savemes(self):

----


# アウトライン
- **listWidgetの動作を確認**
データモデル作成は良いけど、クリック時の飛び方
- 行データの与え方
非表示で二列目も作る、二列目に行番号を入れる
foobar を参考に

- 解析ルーチンを派生クラスのメソッドにして親から呼ぶ、データモデルをselfで保持する(これは再解析を含む)、データモデルが戻り値
- 親に対してモデルを帰すメソッド実装、タブ切替時に呼ぶ
- かならずモデルを作る、解析すべきモノが無ければ「┐('д')┌」
## リロード時に状態を復元する

----


---
カラーコード
http://www.netyasun.com/home/color.html


## お気に入りの読込
- 設定ファイルに移そう、保存はしばらくしなくていい
設定ファイル自体をお気に入りに追加しておく

settings.beginGroup("favorite")

for i in range(100):
 l = settings.value( ''.frmat() ,NULL)
 if not l :
   break
 l.splt('|')
settings.endGroup("favorite")

----------
# ダイレクトコール
できません┐('д')┌
本家サイトで推奨してるので何とか導入したいんだけど
pythonは基本的にはポインタを意識しなくて良い言語だけど、知識がないと対応できない
むしろ型宣言がしっかりした言語の方が使いやすいのかもしれないと思ったりします
cのように、型が厳格なくせにキャストはやりたい放題とか( ´∀`)
出来た方がいらしたら是非教えていただきたいです


---

----
---> [scieditor2](https://mimemo.io/m/zeXgworpjz4K0Ek)

      

項目なり検索の独自実装gPad の罫線機能を実装行内の数字加算機能ボックス選択した範囲内の数字を加算する機能setutf8テキスト用カスタムレクサタブにコンテキストつけて全て閉じるとか実装GrEPtryのexceptionを全て表示お気に入りのフォルダ sql 化s-barのクラス設計アウトラインリロード時に状態を復元するお気に入りの読込ダイレクトコール

検索の独自実装

  • ヒットした個数が知りたい
    内部的にはリストかタプルで個数を保持していると思う、ネクストはイテレートしてるのでは?
    取得できるか調べてみる

  • アウトラインビューにヒットした行を表示する
    analyzetree を参考にコーディングする
    analyzetreeは行文字を頭打ちにしてるが全て取得しなければならない
    検索ウイジェットにボタンを追加「DispLine」
    ①行を取得する
    ②検索文字が含まれているかチェック
    ③含まれていたらツリービューのモデルにappendする -->(行)先頭から10文字、行
    ④50行超えたら append は中止
    ⑤ステータスバーにヒット行数を表示する
    ⑥ビューにモデルをセットする

  • カスタムレクサの切替でも良いのでは無いか
    検索文字をハイライト表示、htmlなら普通ですよね

gPad の罫線機能を実装

行内の数字加算機能

シンチラ派生クラスのキーにバインド
①現在行文字列を取得
②n桁の数字を検索抽出
③リスト化されて帰るのでその要素を全て加算
④行末に文字列追加~ |***

import re

def countnum(self):
    # 行文字列取得
    line , index = 0 , 0
    self.getCursorPosition( line , index )
    result = re.findall(r'\d{1,}',  self.text( line) )
    p= sum( [ int(l) for l in result ] )
    p='| ' + str( p )     # 挿入文字列
    self.insertAt ( p , line , len(  self.text(line).length() ) )

# self.text(line).length()   ---> character
# int QsciScintilla::lineLength  ( int  line ) const ---> bytes
# QsciScintilla.:insertAt  ( const QString &  text,   int  line,  int  index  ) 
# void QsciScintilla::getCursorPosition  ( int *  line,   int *  index   )  const 

ボックス選択した範囲内の数字を加算する機能

setutf8

今注釈行にしてるのを解除してみる
u8,s-jis が綺麗に保存されることを確認
文書のエンコードを変更できるようにしておく(保存時の)

テキスト用カスタムレクサ

https://qscintilla.com/

タブにコンテキストつけて全て閉じるとか実装

  • しかしこれなくても良い、簡単だけど
    何となく次々と機能増やしたらいつかすごく遅くなってたりするんじゃないのかなって思ったりした

GrEP

tryのexceptionを全て表示

お気に入りのフォルダ sql 化

  • sql 化する前に実験する
    ①treeview とボタンだけのダイアログをdesignerで作って実験する
    ボタン:ok : cancel : insFolda
    ②ドラッグでファイルを追加できること、DDで順番を変更できること
    ③その順番でsqlで書き出しできること、読みこみできること

  • アウトラインクリック時の挙動も確認
    アウトライン行+10を第1行目にしてみたらどうだろう

s-barのクラス設計

class mysbar():
def init(p):# p -> statusbr
pにラベルを三つセットする
self.label[]
def settext( str , id ) : # id -> 表示する場所、そのほか特殊メッセ
if id<3 :
self.label[id].setext(str)
elif id==4 : # save message
self.savemes()
else:
pass
def savemes(self):


アウトライン

  • listWidgetの動作を確認
    データモデル作成は良いけど、クリック時の飛び方

  • 行データの与え方
    非表示で二列目も作る、二列目に行番号を入れる
    foobar を参考に

  • 解析ルーチンを派生クラスのメソッドにして親から呼ぶ、データモデルをselfで保持する(これは再解析を含む)、データモデルが戻り値

  • 親に対してモデルを帰すメソッド実装、タブ切替時に呼ぶ

  • かならずモデルを作る、解析すべきモノが無ければ「┐('д')┌」

リロード時に状態を復元する



カラーコード
http://www.netyasun.com/home/color.html

お気に入りの読込

  • 設定ファイルに移そう、保存はしばらくしなくていい
    設定ファイル自体をお気に入りに追加しておく

settings.beginGroup("favorite")

for i in range(100):
l = settings.value( ''.frmat() ,NULL)
if not l :
break
l.splt('|')
settings.endGroup("favorite")


ダイレクトコール

できません┐('д')┌
本家サイトで推奨してるので何とか導入したいんだけど
pythonは基本的にはポインタを意識しなくて良い言語だけど、知識がないと対応できない
むしろ型宣言がしっかりした言語の方が使いやすいのかもしれないと思ったりします
cのように、型が厳格なくせにキャストはやりたい放題とか( ´∀`)
出来た方がいらしたら是非教えていただきたいです



---> scieditor2