秀丸エディタのアウトライン機能を使用して、JavaScript関数だけをツリー形式で表示

ソフトウェア秀丸エディタ

大前提

 状態:-  閲覧数:3,750  投稿日:2014-10-13  更新日:2017-03-12
ツリー表示はコピペ出来ない
・正確にはコピー出来るが、罫線だけは空白でコピーされる

罫線を含むツリー表示をコピペするには?
・1.ツリーそのものをコピー(罫線部分は空白)
・2.罫線変換マクロ適用

2つの方法

 閲覧数:188 投稿日:2014-10-13 更新日:2017-03-12 

方法1.アウトライン(ツリー)+強調表示


1.アウトライン機能
〔ウインドウ〕-〔アウトライン解析の枠〕

2.ツリー表示
・「アウトライン解析の枠」で右クリック
・「ツリー表示」選択

3.強調表示
・「アウトライン解析の枠」で右クリック
・「アウトライン解析の設定」選択
・右下の「読込み」ボタンクリック
・「js20141014-4.hilight」選択


方法2.アウトライン(関数一覧)+マクロ)


1.アウトライン機能
〔ウインドウ〕-〔アウトライン解析の枠〕

2.関数一覧
・「アウトライン解析の枠」で右クリック
・「関数一覧」選択
・関数一覧が表示される
・「アウトライン解析の枠」で右クリック後、「一覧をコピー」選択して、表示内容をコピー
・新規ファイルへ貼り付け

3.罫線変換マクロでツリー形式へ変換
・マクロ実行
・「TabTreeConvert.mac」選択

ファイルタイプ別の設定- アウトライン- アウトライン解析の枠

 閲覧数:361 投稿日:2014-10-13 更新日:2017-03-11 

Ver8.34


アウトライン解析の枠(Ver8.34対応版)

ファイルタイプ別の設定- アウトライン- 解析- 関数一覧

 閲覧数:368 投稿日:2014-10-13 更新日:2017-03-11 

Ver8.34


関数一覧
 関数の一覧としてアウトライン解析します。
 「言語」の内容は、いまのところ「C言語/Java等」のみしか選ぶことができません。
 言語の変更はいまのところできませんが、関数一覧といっても何の関数のことか分からないため、C言語/Java等であることを明示的に表すために、敢えて表示しています。
 C言語/Java等は、以下の言語に対応しています。

C
C++
Java
JavaScript
C#
Objective-C
go言語
解析(Ver8.34対応版)


JavaScript


JavaScriptにも対応しているが、JavaScriptに特化しているわけではない
・「function ★★」関数名は取得できるが、即時無名関数オブジェクトのメソッドはデフォルトでは取得できない
・即事無名関数オブジェクトはfunctionとして取得される

感想
・他に似たようなツールを知らないので、便利なのは便利
・細かい設定を加えていけば、使えるようになるかも…


「関数一覧」選択後


仕様
・罫線未対応
function
function
function
function
function
function
function
function
function
function
function
function
function
function
gaEventSend
updateStatus
parseParams
rewriteHash
switch (step) {
case 1:
case 0:
applyParams
nextStepApplyParams
chRadio
switch(this.name) {
case "participation" : {
chCheckbox
switch(d.attr("id")) {
case "cb-dlr":
case "cb-dlsr":
case "cb-dllh":
case "cb-dlucdg":
case "cb-dlvml":
default :
chValue
checkCompleted
redrawStats
getUserRepo
runShow
redrawRepos
meiRepo
moiRepo
meForks
meSources
meFS
fSource
fFork
refreshRepoList
name
size
age
titleAge
color
darker
sort
width
star
fork
chCheck
append
appendStat
repoItemOver
repoItemOut
repoItemClick
getAccessToken
init
function
pauseShow
startShow


罫線変換マクロ導入
「ツリーそのものをコピー」のTAB-罫線変換マクロ
▼D:/Program Files (x86)/Hidemaru/macro/TabTreeConvert.mac
・「アウトライン解析の枠」にある「ツリーそのものをコピー」を使用してクリップボードに出力されるデータを、TAB→罫線変換を行うマクロ
・ 「ツリーそのものをコピー」を実行し、秀丸エディタに貼り付けてから実行
・範囲選択している場合は、選択範囲のみ実行
├function
├function
├function
├function
├function
├function
├function
├function
├function
├function
├function
├function
├function
├function
├gaEventSend
├updateStatus
├parseParams
├rewriteHash
│└switch (step) {
│  ├case 1:
│  └case 0:
├applyParams
├nextStepApplyParams
├chRadio
│└switch(this.name) {
│  └case "participation" : {
├chCheckbox
│└switch(d.attr("id")) {
│  ├case "cb-dlr":
│  ├case "cb-dlsr":
│  ├case "cb-dllh":
│  ├case "cb-dlucdg":
│  ├case "cb-dlvml":
│  └default :
├chValue
├checkCompleted
├redrawStats
├getUserRepo
├runShow
├redrawRepos
├meiRepo
├moiRepo
├meForks
├meSources
├meFS
├fSource
├fFork
├refreshRepoList
│├name
│├size
│├age
│├titleAge
│├color
│├darker
│├sort
│├width
│├star
│├fork
│├chCheck
│├append
│└appendStat
├repoItemOver
├repoItemOut
├repoItemClick
├getAccessToken
└init
 ├function
 ├pauseShow
 └startShow

※一番上の階層のみ一行空けるよう設定したいのだが、やり方が不明

ファイルタイプ別の設定- アウトライン- 解析- ツリー表示

 閲覧数:171 投稿日:2014-10-13 更新日:2017-03-11 
〔ウインドウ〕-〔アウトライン解析の枠〕


ツリー設定


〔その他〕-〔ファイルタイプ別の設定〕-〔アウトライン解析の方法〕
・「ツリー表示」にチェックを入れる


ツリーコピー



・「アウトライン表示エリア」で右クリック
・〔ツリー操作〕-〔ツリーそのものを選択〕


ツリー操作
・「ツリー表示」選択している場合のみ表示されるナビゲーション

ファイルタイプ別の設定- アウトライン- 解析- ツリー表示項目のプロパティ

 閲覧数:354 投稿日:2014-10-13 更新日:2014-10-14 

SQL


ツリー表示項目のプロパティ
・下記ページで文字列を指定する簡単な例が解説されている
秀丸のアウトライン解析が地味に便利な件

・表示範囲指定にも踏み込むと、さらに細かい挙動を制御可能となる

ファイルタイプ別の設定- アウトライン- 解析- ツリー表示項目のプロパティをJavaScriptに特化させてみる

 閲覧数:386 投稿日:2014-10-14 更新日:2017-03-11 

作成例


GUIで作成した結果を保存
・GUIで操作した結果を出力しているだけなので、下記内容を理解する必要は全くない
▼D:/Program Files (x86)/Hidemaru/macro/Setting/js20141014-4.hilight
/<TreeWord>
/0000,0002,0000,00000000,00014553,"^[ \\t]*class[^:;{]*",""
/0000,0003,0000,00000000,00006156,"struct",""
/0000,0001,0000,00000000,00002652,"",""
/0001,0003,0000,00000000,000041D6,"switch",""
/0002,0003,0000,00000000,000041D6,"case",""
/0002,0003,0000,00000000,000061D6,"default",""
/0003,0002,0000,00000000,00000750,".prototype = {",""
/0004,0002,0000,00000000,00000750,".prototype={",""
/0005,0002,0000,00000000,00000750," = function",""
/0006,0003,0000,00000000,00000152,"return {",""


上記条件 + マクロ適用例
├$ = function(xpr){
├$$ = function(xpr){
├var createDigits = function(xpr){
│└return {
│  ├get : function(){
│  ├show : function(num){
│  ├warnUnder : function(num){
│  ├inc : function(num){
│  ├dec : function(num){
│  └reset : function(){
├var codes = function(html){
│├rgxGlobal    = function(){
│└var highlight = function(code){
├var overlay = function(){
│└return {
│  ├show : function(fnc){
│  └hide : function(fnc){
├var timer = function(){
│└var stop = function(){
│  └return {
│    ├create : function(ms, fnc){
│    └sec : function(){
├var status = function(){
│└return {
│  ├show : function(typ, str, fnc){
│  ├hide : function(fnc){
│  ├point : function(num, fnc){
│  └getScore : function(){
├var results = function(){
│└return {
│  ├show : function(score){
│  └add : function(question, rightAns, yourAns, isCorrect){
├var questions = function(codes){
│├var uneval = function(xpr){
││└switch(typeof xpr){
││  ├case "string" : return '"' + xpr + '"';
││  └default       : return xpr;
│├var next = function(){
│├var correct = function(ans){
│├var incorrect = function(ans){
│└var check = function(yourAns){
│  └return {
├var answer = function(){
│└elm.onkeydown = elm.onkeypress = elm.onkeyup = elm.change = function(){
│  └return {
│    ├get : function(){
│    ├reset : function(){
│    ├focus : function(){
│    ├lock : function(){
│    └unlock : function(){
├$("form").onsubmit = $("#btnAnswer").onclick = function(){
│├$("#btnStart").onclick = function(){
│└return {
│  └eval : function(/* xpr */){
└function(){
 ├transitions[LINEAR] = function(x){
 ├transitions[EASE_IN] = function(x){
 ├transitions[EASE_OUT] = function(x){
 ├transitions[EASE_OUT2] = function(x){
 ├transitions[SIN] = function(x){
 ├var createTransitionArray = function(type, dx){
 ├var animate = function(){
 ├var stop = function(){
 │└css = function(elm, prp){
 └var createTween = function(elm, sty, prp, from, to, dx, trn, repeat, comp, init){
   ├tweens.push(repeat ? function(){
   ├} : function(){
   └return {
     ├resume : function(){
     └add : function(elm, prm){



感想


実際に使用してみた感想
・正規表現を駆使しなければ抽出できないと思い込んでいた
→そんなことはない
→プロパティの設定項目は想定していたよりはるかに豊富
→GUI(プルダウン等で選択する)だけでかなり細かい指定が可能

ポイント
・「見出しの定義」に文字列を指定することで、ほぼ何でも出来る
・「インデントの深さでレベルを決める」にチェックを入れる
・表示範囲 … 行全体


Windowsでコピー履歴参照するため、常駐秀丸にショートカットキーを設定した。[Ctrl]+[Alt]+[C]

秀丸エディタでグレップ検索できない



類似度ページランキング
順位 ページタイトル抜粋
1 秀丸エディタ自体のフルパスは、「アイコン(Hidemaru.exe - ショートカット)右クリック後、プロパティ選択」して確かめる 35
2 ScrapeStormは、無料でデータダウンロード出来ません 35
3 秀丸エディタ Version 8.81 インストール 34
4 Windows 7でタスクバーへ「デスクトップの表示」アイコンを表示 33
5 Windows Search Indexerのインデックスの範囲をスタートメニューだけにしたが、フリーズ発生(2019/7/12) 33
6 秀丸エディタ「浮動小数点数バージョン」は、マクロで浮動小数点数を扱う人専用の特別な仕様 32
7 秀丸エディタでグレップ置換時に確認ダイアログを表示させないようにするためには、『「grepして置換」を実行する前に確認』のチェックを外す 32
8 Windowsで使用するハードディスクは、NTFS形式のフォーマットにする 32
9 Diskpart コマンドインタープリター 31
10 アンインストールに失敗して残ったサービスのエントリを消去 31
11 秀丸エディタのタブは分離して使用可能。例 … 5タブ → 2タブ+と3タブ 30
12 IBMが提供するインターネットバンキング専用のウィルス対策ソフト「Rapport(ラポート)」(無料) 29
13 録音した音のボリュームを大きく(変換)するためには、「Audacity」を使用 29
14 MP3ファイルの無音部分を自動検出して、「分割」もしくは「削除」するフリーソフト … mp3DirectCut 28
15 Ralpha Image Resizer / 短辺をpx指定で縮小後、px指定して正方形トリミング 28
16 ライブアップデート に関するエラーが発生。Norton? ASUS? 28
17 インストールプログラム保存データトリアージ 28
18 「リサイズ」「トリミング」「回転補正」だけを操作可能な軽量ソフトウェアを探しています。 28
19 「秀丸エディタ」ビット数確認 28
20 秀丸エディタに関連付けていたファイルを開こうとしても、 「異なるフォルダの秀丸エディタが実行されているので起動できません。」というエラーダイアログが出て開くことができません。 27
2021/4/10 21:35 更新
週間人気ページランキング / 4-3 → 4-9
順位 ページタイトル抜粋 アクセス数
1 MP3ファイルの「プロパティ」を変更できない | Windows 10(Windows) 117
2 「接点復活剤」「接点復活スプレー」は、100円ショップで販売されていない | イヤホン(ハードウェア) 59
3 Windows 0 58
4 「コンテナー内のオブジェクトを列挙できませんでした」と表示される場合は、「Everyone にフルコントロール権限を与えて全て削除する」 | Windows 10(Windows) 37
5 「機能を構成しています 100%完了 コンピューターの電源を切らないでください」の画面が表示され続ける場合でも、1時間ぐらいは待った方が良いかも | 起動トラブル 2019年(Windows) 35
6 ファイル名の一部(指定文字列)を削除するバッチファイル | バッチファイル(Windows) 32
7 タスクスケジューラ | Windows 10(Windows) 31
8 コンピューターは正しく構成されていますが、デバイスまたはリソース (DNS サーバー) が応答していません。 | ネットワーク 27
9 メモリ不足のため、この処理を完了できません | Windows 26
10 VLC media player で複数曲を「繰り返し連続再生する」ためには、プレイリスト全体をリピート再生指定する | VLC media player(ソフトウェア) 25
11 Windows10で「空のドライブを表示しないようにする」ためには、 「フォルダーオプション」にて「空のドライブは表示しない」にチェックを入れる | Windows 10(Windows) 23
12 コマンドプロンプトでchkdsk /B | ハードディスクトラブル(ハードウェア) 22
13 Windows10でデスクトップにファイルを保存できない。ESPRIMO DH77 | Windows 10(Windows) 18
14 Xboxを使用していない場合、XblGameSaveを動作させる必要は全くない 16
15 マウスの選択範囲がおかしくなった時、試してみた方が良いかもしれないこと | マウス(ハードウェア) 14
16 外付けハードディスクを収納可能な安価ラックを探す | 外付けハードディスク(ハードウェア) 13
16 Windows10 不定期でフリーズ発生トラブル(2019/6/9)。フリーズ現象の調査で採取するダンプの種類は、「完全メモリダンプ」でないと有効な調査はできない | フリーズトラブル 2019年(Windows) 13
17 「みまもり合図」に関する疑問。2018年 | みまもり合図(ソフトウェア) 12
17 Windows10 不定期でフリーズ発生トラブル(2019/6/7→6/8)。イベントビューアーで発生個所を特定しようとするも失敗に終わる | フリーズトラブル 2019年(Windows) 12
18 ハードディスク診断ツールHDD-SCAN | ハードディスク故障診断ソフト(ソフトウェア) 11
2021/4/10 1:02 更新