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

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

大前提

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

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

2つの方法

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

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


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

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

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


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


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

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

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

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

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

Ver8.34


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

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

 閲覧数:768 投稿日: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

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

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

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


ツリー設定


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


ツリーコピー



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


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

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

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

SQL


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

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

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

 閲覧数:792 投稿日: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 秀丸エディタのアウトライン機能を使用して、JavaScript関数だけをツリー形式で表示 95
2 秀丸エディタ自体のフルパスは、「アイコン(Hidemaru.exe - ショートカット)右クリック後、プロパティ選択」して確かめる 35
3 「Audacity」をダウンロードしてインストール 35
4 ScrapeStormは、無料でデータダウンロード出来ません 35
5 秀丸エディタ Version 8.81 インストール 34
6 Windows 7でタスクバーへ「デスクトップの表示」アイコンを表示 33
7 Windows Search Indexerのインデックスの範囲をスタートメニューだけにしたが、フリーズ発生(2019/7/12) 33
8 ミラーリング機能を搭載したフリーソフト使用候補 33
9 秀丸エディタ「浮動小数点数バージョン」は、マクロで浮動小数点数を扱う人専用の特別な仕様 32
10 秀丸エディタでグレップ置換時に確認ダイアログを表示させないようにするためには、『「grepして置換」を実行する前に確認』のチェックを外す 32
11 Windowsで使用するハードディスクは、NTFS形式のフォーマットにする 32
12 「Tablacus Explorer」でアクティブタブに背景色を付けるためには、「タブをデザイン」アドオンをインストールします。 31
13 「Windowsへインストールしたソフトウェア」の「インストール先」と「すべての関連フォルダパス」を確認するためには、「Geek Uninstaller」経由で「レジストリエディタ」を起動します。 31
14 Diskpart コマンドインタープリター 31
15 音声データファイルの音量を大きく変換するためには「Audacity」を使用します。 31
16 アンインストールに失敗して残ったサービスのエントリを消去 31
17 「アプリと機能」に表示される見覚えのないアプリの場所を確認するためには、「Geek Uninstaller」を使用します。 30
18 秀丸エディタのタブは分離して使用可能。例 … 5タブ → 2タブ+と3タブ 30
19 「Ctrl」キーを押しながら「V」は、カレントディレクトリにしか「貼り付け」できません。 30
20 IBMが提供するインターネットバンキング専用のウィルス対策ソフト「Rapport(ラポート)」(無料) 29
2024/4/19 6:31 更新
週間人気ページランキング / 4-12 → 4-18
順位 ページタイトル抜粋 アクセス数
1 MP3ファイルの「プロパティ」を変更できない | Windows 10(Windows) 65
2 Audacity で再生ボタンを押しても音が鳴らない時は、再生レべルスライダーを右にドラッグして「再生レべル:100%」にします。 | Audacity(音) 37
3 3.解凍先の指定。デフォルト設定ではデスクトップに解凍 36
4 コマンドプロンプトでchkdsk /B | ハードディスクトラブル(ハードウェア) 20
4 ファイル名の一部(指定文字列)を削除するバッチファイル | バッチファイル(Windows) 20
5 「Audacity」で複数ファイルへ対する一括変換対応について | Audacity(音) 16
6 Windows 0 14
7 フォルダウィンドウの「戻る」「進む」矢印ボタンが表示されなくなった | Windows7(Windows) 13
7 「タイムゾーン間で同期」にはチェックを入れない 13
8 タスクスケジューラ | Windows 10(Windows) 12
8 Windows10 不定期でフリーズ発生トラブル(2019/6/7→6/8)。イベントビューアーで発生個所を特定しようとするも失敗に終わる | フリーズトラブル 2019年(Windows) 12
8 Tablacus Explorer | ソフトウェア 12
9 Xboxを使用していない場合、XblGameSaveを動作させる必要は全くない 10
9 「Windows 10」でアイコンをダブルクリックするとプロパティ画面が開く理由は、「Altキー」が押下されたままと認識されているため | Windows 10(Windows) 10
9 「Windows 10」パソコンのタスクマネージャーで「GPU」が表示されない(グレイアウトされる)理由は、WDDMドライバがWDDM2.x以上ではなかったから | Windows 10(Windows) 10
10 マウスの選択範囲がおかしくなった時、試してみた方が良いかもしれないこと | マウス(ハードウェア) 9
10 「みまもり合図」に関する疑問。2019年 | みまもり合図(ソフトウェア) 9
10 クイックアクセスから複数のピン留めを一括で解除することはできません | Windows エクスプローラー(Windows) 9
11 秀丸エディタで、意図的に読み取り専用でファイルを開く方法は 4 種類あります。 | 秀丸エディタ(ソフトウェア) 8
11 FastCopy | ソフトウェア 8
2024/4/19 1:01 更新