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

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

大前提

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

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

2つの方法

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

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


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

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

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


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


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

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

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

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

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

Ver8.34


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

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

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

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

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

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


ツリー設定


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


ツリーコピー



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


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

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

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

SQL


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

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

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

 閲覧数:878 投稿日: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/11/25 5:16 更新
週間人気ページランキング / 11-18 → 11-24
順位 ページタイトル抜粋 アクセス数
1 Audacity で再生ボタンを押しても音が鳴らない時は、再生レべルスライダーを右にドラッグして「再生レべル:100%」にします。 | Audacity(音) 38
2 「タイムゾーン間で同期」にはチェックを入れない 25
3 「VLC media player」で動画再生する際、なるべく高画質で観るための設定 | VLC media player(ソフトウェア) 21
4 「みまもり合図」に関する疑問。2019年 | みまもり合図(ソフトウェア) 19
5 3.解凍先の指定。デフォルト設定ではデスクトップに解凍 18
6 「Tablacus Explorer」でアクティブタブに背景色を付けるためには、「タブをデザイン」アドオンをインストールします。 | Tablacus Explorer(ソフトウェア) 16
7 コマンドプロンプトでchkdsk /B | ハードディスクトラブル(ハードウェア) 15
8 「Audacity」で複数ファイルへ対する一括変換対応について | Audacity(音) 14
8 タスクスケジューラ | Windows 10(Windows) 14
8 「Windows 10」へインストールした「Audacity 3.2.4」で「.aacファイル」を読み込み、音量を大きく変換後、「.waveファイル」として出力する。 | Audacity(音) 14
9 MP3ファイルの「プロパティ」を変更できない | Windows 10(Windows) 13
10 「WDDM」は、要件を満たさないとアップデートできません。 | Windows 10(Windows) 11
11 クイックアクセスから複数のピン留めを一括で解除することはできません | Windows エクスプローラー(Windows) 10
11 Tablacus Explorer Version 23.9.13 へのアップデート | Tablacus Explorer(ソフトウェア) 10
11 Xboxを使用していない場合、XblGameSaveを動作させる必要は全くない 10
12 「Chromeのユーザー1」を削除。ブックマークを復活させるためには、「Bookmarks.bak」を「Bookmarks」へリネーム後、「Profile 1」フォルダへ上書き配置 | Google Chrome(ソフトウェア) 9
12 Windows10 不定期でフリーズ発生トラブル(2019/6/7→6/8)。イベントビューアーで発生個所を特定しようとするも失敗に終わる | フリーズトラブル 2019年(Windows) 9
12 VLC media player で複数曲を「繰り返し連続再生する」ためには、プレイリスト全体をリピート再生指定する | VLC media player(ソフトウェア) 9
13 これまで正常動作していた「CrystalDiskInfo」である日突然「対応ディスクが見つかりませんでした」と表示された場合は、アップデートしてみます。 | CrystalDiskInfo(ソフトウェア) 8
14 イベントビューアー | Windows 7
2024/11/25 1:01 更新