[リストへもどる | 新着記事50件]
新着記事


タイトルPPx QuickJS Script Module R1+3
記事No4765   [関連記事]
投稿日: 2025/03/16(Sun) 23:07
投稿者TORO
PPx QuickJS Script Module R1+3 を公開しました。

32bit版の Date オブジェクトを使用しようとすると異常終了して
いたのを修正しています。


タイトルRe^5: PPcの起動時の挙動に関して
記事No4764   [関連記事]
投稿日: 2025/03/16(Sun) 10:32
投稿者tm
> 問題ありそうな部分を見つけたため、+4 で調整してみています。
>
> こちらでは現象を再現できていませんが、挙動を確認した範囲では
> 修正できていると思います。

修正ありがとうございます。
少し確認しただけですが改善しているようです。しばらく様子を見て
同様の状態が発生するようなら報告したいと思います。


タイトルRe^4: PPcの起動時の挙動に関して
記事No4763   [関連記事]
投稿日: 2025/03/15(Sat) 23:37
投稿者TORO
問題ありそうな部分を見つけたため、+4 で調整してみています。

こちらでは現象を再現できていませんが、挙動を確認した範囲では
修正できていると思います。


タイトルPPx 2.01+4
記事No4762   [関連記事]
投稿日: 2025/03/15(Sat) 23:35
投稿者TORO
PPx 2.01+4 を公開しました。

JSON形式のListFileの取り扱いを強化しています。
また、dock に登録するメニューバーを挙動を色々強化しました。


タイトルPPMON 0.4
記事No4761   [関連記事]
投稿日: 2025/03/15(Sat) 23:33
投稿者TORO
PPMON 0.4 を久しぶりにいじったので公開しました。

挙動や外観等を色々改善しています。また、プロセスIDを指定して
そのプロセスのメモリを表示できるようにしています。


タイトルRe^3: PPcの起動時の挙動に関して
記事No4760   [関連記事]
投稿日: 2025/03/11(Tue) 22:36
投稿者TORO
サンプルありがとうございます。
見てみたところ、フォントが大きくなっているのではなく、
拡大表示になっています。

最大化表示の前の小さな大きさで表示した内容を、最大化状態の
大きさにスケーリングされて拡大されていると思われます。

画面の大きさはその時のウィンドウの大きさで取得しており、
且つ始めから最大化の状態でウィンドウを初期化していますので、
意図しない挙動の変化により現象が起きていそうです。
このため、原因の特定に時間がかかるかもしれません。


タイトルRe^2: PPcの起動時の挙動に関して
記事No4759   [関連記事]
投稿日: 2025/03/10(Mon) 22:25
投稿者tm
> 再現できていませんが、初期化が完了する前に画面表示を
> してしまっている感じです。見直してみます。

再現が難しいようなので環境によるものかもしれませんが画像を
取ってみました。DW版でのみ拡大表示されるようですが、通常版でも
一瞬loading画面が表示されているので、この辺りが要因になっていそうです。
実行環境はwin10 64bit PPx201+3のDW版でセットアップ直後の状態で
確認しています。

gist.github.com/user-attachments/assets/67572c03-724a-4957-a046-658296c8fdd5

gist.github.com/user-attachments/assets/c2a518c0-99f3-453c-93f6-f65410908cce


タイトルPPx 2.01+3
記事No4758   [関連記事]
投稿日: 2025/03/09(Sun) 23:45
投稿者TORO
PPx 2.01+3 を公開しました。

・aux: パスの挙動調整と、[A]属性変更、[W]書き込み に対応する
設定を追加しています。

・ListFile を今までの独自形式に加えて、JSON形式を使えるように
強化中です。とりあえず、PPcの読み込みと、*makelistfile -json に
よる作成ができるようにしています。
書式は確定でなく、正式版までに変更するかもしれません。

・ListFile に表示様式、特殊環境変数に保存可能な値 の指定が
できるようにしています。


タイトルRe: PPcのタブをエディタで整理したいのですが
記事No4757   [関連記事]
投稿日: 2025/03/09(Sun) 09:51
投稿者hokorobi
やりたいことと違うかもしれませんが、重複タブを閉じるだけだったらこんなスクリプトを使ってます。
ご参考まで。

//!*script

var tabs = PPx.Pane.Tab;
var closeIDs = [];
var closeCandidateIDs = [];
/*
closeCandidateIDs = {path: id, ...}
id は、閉じる可能性のあるタブの id。
表示中のタブは閉じないので、path の登録時に id を空文字列とする。
path が重複した場合、id を閉じる対象とする。
id が空文字(表示中のタブ)の場合、closeCandidateIDs[path] を閉じる対象とする。
この際、closeCandidateIDs[path] を空文字列に入れ替える。
*/

// IDName を CA-CZ, CZxx の形式へ
PPx.WindowIDName = 1

for (var i = 0; i < tabs.Count; i++) {
var tab = tabs.Item(i);
var id = tab.IDName;
var path = PPx.Extract('%D' + id).toUpperCase();
//PPx.Echo(i + ": " + id " ": " + path);

// 表示中のタブ、または、ロック中のタブでないなら閉じるタブの候補へ
var closeCandidateID = (tab.Type != -2 || tab.Lock == 1) ? '' : id;

// パスのリストに追加
if (closeCandidateIDs[path] == undefined) {
closeCandidateIDs[path] = closeCandidateID;
continue;
}

// パスが重複しているので、閉じないタブでないなら閉じるタブとして登録
if (closeCandidateID != '') {
closeIDs.push(closeCandidateID);
continue;
}

// パスの重複はあったが閉じないタブかつ、既存の閉じる候補のタブもないので何もしない
if (closeCandidateIDs[path] == '') {
continue;
}

// 既存の閉じる候補のタブを閉じるタブとして登録
closeIDs.push(closeCandidateIDs[path]);
// パスに紐づく閉じる候補のタブを空にする
closeCandidateIDs[path] = '';
}

if (closeIDs.length > 0) PPx.Execute('*closeppx "' + closeIDs.join(',') + '"');


タイトルRe^2: PPcのタブをエディタで整理したいのですが
記事No4756   [関連記事]
投稿日: 2025/03/08(Sat) 21:52
投稿者TORO
とりあえず、タブ一覧をテキストで変更できるスクリプトを
作ってみました。現在窓の現在タブグループ内に限り並び替えと
パスの変更が可能です。
別グループや別ペインへの移動、タブの追加や削除には対応していません。

EditTabList.js:
//!*script
	"use strict";
	PPx.WindowIDName = "1";

	var tabs = PPx.Pane.Tab;
	var items = [];
	for ( ; !tabs.atEnd() ; tabs.moveNext() ){
		items.push({"path":tabs.Extract("%1"), "id":tabs.IDName});
	}

	if ( 0 ) { // sort
		items.sort(function(a,b){
			if (a.path < b.path) return -1;
			if (a.path > b.path) return 1;
			return 0;
		});
	}

	var text = "";
	for ( i = 0; i < items.length ; i++ ){
		// JSON にするには、items[i].path.replace(/\\/g,"\\\\") にする
		text += "{\"path\":\"" + items[i].path + "\", \"id\":\"" + items[i].id + "\"},\r\n";
	}
	PPx.setIValue("tablist", text);
	text = PPx.Extract("*maxlength 100000000 %: %OC%*input(-multi -select:t -title:\"行の入れ替えか path の編集が可能\" \"%si\"tablist\"\")");
	if ( text != "" ){
		var newitems = eval("[" + text.replace(/\\/g,"\\\\") + "{}]");
		// PPx.Echo(JSON.stringify(newitems));

		text = "";
		for ( i = 0; i < (newitems.length - 1) ; i++ ){
			for ( tabs.Reset(); !tabs.atEnd() ; tabs.moveNext() ){
				if ( newitems[i].id == tabs.IDName ){
					// PPx.Echo(newitems[i].id, i, tabs.Index);
					if ( newitems[i].path != tabs.Extract("%1") ){
						tabs.Execute("*jumppath \"" + newitems[i].path + "\"");
					}
					if ( i != tabs.Index ){
						PPx.Execute("*pane tabshift " + newitems[i].id + "," + (i - tabs.Index));
					}
					break;
				}
			}
		}
	}