説明
待っている間スクリプト エディタにスニペットを追加するスクリプト エディタでスクリプトを作成する際に、少なくとも何らかのスニペットを作成できるように、アドインをすばやく作成しました。 アドインはかなり速く組み立てられましたが、まだバグや問題があります (特に、UI のさまざまな要素にフォーカスする場合)。 そこにはこのアドインが変更され、現在のスニペットやその場所の機能が損なわれる可能性があります。
スニペットとは? スニペットは、再利用可能なソース コード、マシン コード、またはテキスト (ウィキペディア、Snippet_(プログラミング) )。 スニペットを使用すると、再利用可能なコード ブロックをコードにすばやく挿入できます。 これにより、時間を節約し、スニペットを手動で入力する場合に発生する可能性のある間違いを減らすことができます。
インストール
アドインはで構築されていますアドイン マネージャー、最低でも JMP16 が必要で、Windows をサポートします (OSX で動作する可能性がありますが、それをテストすることはできず、サポートされているホストはアドイン マネージャーで Win として設定されています)。
このページからアドインをダウンロードし、通常の JMP アドインと同じように (ダブルクリックして) インストールします。 アドインは (既定で) ショートカット キーバインドを使用しますCtrl+Shift+スペース. アドインを初めて実行すると、ユーザー $DOCUMENTS にフォルダを作成と呼ばれるjmp_script_editor_snippetsカスタム スニペットの保存に使用できるユーザー (フル パスは C:\Users\ のようなものです) <ユーザー名> \Documents\jmp_script_editor_snippets\)。 スニペット ファイルは基本的に、アドインのスニペット フォルダーまたはユーザーのドキュメントのスニペット フォルダーから見つかった単なる .jsl ファイルです。
使用法:
書く#snippet <オプションの検索語>スクリプトエディタに。 #snippet はルックアップ値として使用され、オプションの検索語を含めると、それらが検索バーの事前入力に使用されます。 コードに #snippet を追加したら、Ctrl+Shift+Space を押して JMP Script Editor Snippet ウィンドウを起動し、正しいスニペットを検索して [OK] を押します (Enter を押すか、Tab を使用して Enter に移動することもできます)。 #snippet 行は、選択したスニペットに置き換えられます。 以下はスニペットウィンドウの画像です

スニペット ウィンドウ
ユーザーがアドインを実行し、スクリプト ボックスから #snippet が見つからない場合、何も起こりません。 スニペットを挿入したくない場合は、Esc キーを押します。 誤ってスニペットを挿入した場合は、Ctrl+Z を押して変更を元に戻すことができます。
プリインストールされたスニペット
これらのスニペットの名前は意図的に短くされているため、ユーザーは名前全体を次のように簡単に書くことができます。 <オプションの検索語> #スニペットの後。 このようにスニペットを使用すると、ユーザーはすぐに Enter キーを押して必要なスニペットを使用できます。
new_bg
もっと見る...
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
new_bg_gb
もっと見る...
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
);
もしも
もっと見る...
If(condition1,
//code1
, //condition2,
//code2
, //else
//code3
);
機能
もっと見る...
function1 = function({param1, param2, param3 = .}, {Default Local},
/*"""function1 which returns missing.
More description regarding the function
Args:
param1 (displaybox):
param2 (char):
param3 (num):
Returns:
num: missing
Raises:
exception_msg
"""*/
return(.);
);
新着
もっと見る...
/*"""One sentence description for this script
Author:
Creation Date:
Creation JMP Version:
Description:
Todo:
*
*
"""*/
Names Default To Here(1);
新しい
もっと見る...
nw = New Window("name",
V List Box(align("Center"),
)
, << Set Window Icon("JMP")
);
SQL
もっと見る...
dsn_string = "";
sql_template = "\[
select 1
from dual
]\";
dbc = Create Database Connection(dsn_string);
sql = Eval Insert(sql_template, "¤"); // use ¤ to avoid issues with regex when using ^
dt = Execute SQL(dbc, sql, "NewTable");
Close Database Connection(dbc);
試す
もっと見る...
Try(
Show(a);
, // Catch
show(exception_msg);
);
私も追加しましたcommunity_template.jsl $DOCUMENTS スニペット フォルダに保存されます。これは、JMP コミュニティのスクリプト ソリューションを保存するために使用します
もっと見る...
/*"""
author: jthi
date: YYYY-MM-DD
url: https://community.jmp.com/t5/Discussions/
keywords/tags: []
"""*/
Names Default To Here(1);
例
この簡単な例では、新しいスクリプトを作成します。 スクリプトには、SQL クエリを実行して結果テーブルを返す関数が 1 つあります。
まず、新しい .jsl スクリプト ファイルを開始します。 書くことから始めます
#snippet new
次に、アドインを実行してそのスニペットを置き換えます。 スニペット名全体を #snippet 行に事前に書き込んでいるため、事前に選択されます

アドインを開いた直後に Enter キーを押すだけで、そのスニペットを使用できます。
次に、func スニペットを使用して新しい関数を追加します
#snippet func
その中にSQLスニペットを追加します
#snippet sql
私の現在のコードは次のようになります。
もっと見る...
/*"""This Add-In provides Snippet functionality to JMP Script Editor.
Author:
Creation Date:
Creation JMP Version:
Description:
Todo:
*
*
"""*/
Names Default To Here(1);
function1 = function({param1, param2, param3 = .}, {Default Local},
/*"""function1 which returns missing.
More description regarding the function
Args:
param1 (displaybox):
param2 (char):
param3 (num):
Returns:
num: missing
Raises:
exception_msg
"""*/
sql_template = "\[
select 1
from dual
]\";
dbc = Create Database Connection(dsnstring);
sql = Eval Insert(sql_template, "¤"); // use ¤ to avoid issues with regex when using ^
dt = Execute SQL(dbc, sql, "NewTable");
Close Database Connection(dbc);
return(.);
);
関数内に意図を追加してクリーンアップし、ドキュメント文字列を入力すると、最終的にスクリプトは次のようになります。
もっと見る...
/*"""Example on the usage of JMP Script Editor Snippets
Author: jthi
Creation Date: 2022-12-19
Creation JMP Version: JMP Pro 16
"""*/
Names Default To Here(1);
get_data = function({duration = 1}, {Default Local},
/*"""Function to query data from sql
Args:
duration (num): days to query
Returns:
datatable: queried data table
"""*/
dsn_string = "DSN=dBASE Files;DBQ=C:/Program Files/SAS/JMPPRO/16/Samples/Import Data/;"
sql_template = "\[
select *
from tables
where
data > sysdate - ¤duration¤
]\";
dbc = Create Database Connection(dsn_string);
sql = Eval Insert(sql_template, "¤");
dt = Execute SQL(dbc, sql, "Query Result");
Close Database Connection(dbc);
return(dt);
);
以下は、上記の例に基づいたアドインの使用方法の短いビデオです。
考えられる将来の仕事
- スニペットの前に空白/タブの処理を追加して、挿入されたコードが正しいインデントを持つようにします
- アドインのメニューにヘルプ ボタンとユーザー スニペット フォルダーを開くボタンを追加します。
- 「ヘルプ」ページの作成も必要です。 ヘルプ ページは、.md を .html に変換するか、このコミュニティ ページを使用して作成できます。
- フォーカスの問題を修正しようとする
- 設定オプションを追加
- 無効化されたスニペット、snippet_str、リスト ボックス nlines
- #snippet を必要とせずにスクリプト ウィンドウの最後にスニペットを追加する可能性
- おそらく、スニペットにいくつかの値を事前に入力できる、より複雑な構文を考えてみてください。
- #snippet !param1 !param2 (または類似のもの)
- スクリプト内の変数からの値の評価を許可することもできますか? これには別の構文が必要ですか、それともすでにこれはありますか特徴クリープ?
- スクリプト エディターの横にスニペット リストを埋め込む可能性
- 事前に作成されたスニペットを追加する
- スニペットに説明を追加する可能性を追加