Skip to content

Commit b68debd

Browse files
author
sharkpp
committed
サクラエディタ用のキーワードファイルを追加
git-svn-id: http://nasserver:888/repos/main/platform/sakura-editor/keyword/php@1962 fd21481f-4f5f-b64a-a7cc-914020ce4b36
0 parents  commit b68debd

File tree

5 files changed

+8964
-0
lines changed

5 files changed

+8964
-0
lines changed

php-mkkwd.php

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
<?php
2+
3+
/*
4+
* Written by sharkpp
5+
*
6+
* ・ファイル形式メモ
7+
*
8+
* 入力補完機能
9+
* ・形式
10+
* -----ここから-----
11+
* Apple
12+
* Orange
13+
* Strawberry
14+
* -----ここまで-----
15+
*
16+
* キーワードヘルプ
17+
* ・形式
18+
* 単語[[,単語]...] /// 訳語<改行>
19+
* ・キーワードは複数指定可能です(同義語)。半角カンマで区切って下さい
20+
* ・'\n'で訳語に改行を入れられます
21+
* ・一つの定義(行)は、10キロバイト程度までです
22+
* ・一桁目が';'ならコメント行とみなします
23+
*
24+
* ・使い方
25+
* 1.公式(http://www.php.net/download-docs.php)より
26+
* Many HTML files をダウンロードして解凍。
27+
* 2.$base_url に解凍した場所を指定。
28+
* 3.phpで実行するだけ。
29+
*
30+
*/
31+
32+
//$base_url = "http://127.0.0.1/html/";
33+
$base_url = ".\\html\\";
34+
35+
// URLの列挙
36+
function enum_links($url, $prefix)
37+
{
38+
$result = array();
39+
$base_url = dirname($url) . '/';
40+
$prefix_ = '"'.$prefix.'",'.strlen($prefix);
41+
42+
$data = file_get_contents($url);
43+
if( 0 < preg_match_all('/<a href="([^"]+)">([^<]+)<\/a>/', $data, $m) ) {
44+
$result = array_filter($m[1]
45+
, create_function('$v', 'return !strncmp($v,'.$prefix_.');'));
46+
array_walk($result
47+
, create_function('&$v', '$v="'.$base_url.'".$v;'));
48+
}
49+
return $result;
50+
}
51+
52+
function trim_multiline($text)
53+
{
54+
return trim(preg_replace("/ +/", " ", str_replace("\r", "", str_replace("\n", "", html_entity_decode(strip_tags($text))))));
55+
}
56+
57+
$kwdhlp = "";
58+
$kwd = "";
59+
$kwd2 = "";
60+
61+
// 公開日・著作権者
62+
$data = file_get_contents($base_url . "index.html");
63+
$pubdate = 0 < preg_match('/class="pubdate">(.+?)<\//', $data, $m)
64+
? $m[1]
65+
: '';
66+
$copyright = 0 < preg_match('/<div class="copyright">(.+?)<\/div>/s', $data, $m)
67+
? trim_multiline(str_replace("&copy;", "(c)", $m[1]))
68+
: '';
69+
70+
$kwdhlp = <<<EOD
71+
; PHP マニュアル {$pubdate}版より生成
72+
; {$copyright}
73+
74+
EOD;
75+
76+
// 定義済みのキーワード
77+
$data = file_get_contents($base_url . "reserved.keywords.html");
78+
preg_match_all('/class="(function|link)">(.+?)<\//', $data, $m);
79+
array_walk($m[2]
80+
, create_function('&$v', '$v=str_replace("(", "", str_replace(")", "", $v));'));
81+
$kwd .= implode("\r\n", $m[2]) . "\r\n";
82+
// 定義済みの定数
83+
$data = file_get_contents($base_url . "reserved.constants.html");
84+
preg_match_all('/class="constant">(.+?)<\//', $data, $m);
85+
$kwd2 .= implode("\r\n", $m[1]) . "\r\n";
86+
87+
// キーワードヘルプ・キーワード生成
88+
$book_urls = enum_links($base_url . "funcref.html", "book");
89+
$func_urls = array();
90+
foreach($book_urls as $url) {
91+
$func_urls = array_merge($func_urls, enum_links($url, "function"));
92+
}
93+
foreach(array_unique($func_urls) as $url) {
94+
$data = file_get_contents($url);
95+
$refname= 0 < preg_match('/class="refname">(.*?)<\//s', $data, $m)
96+
? trim_multiline(mb_convert_encoding($m[1], 'SJIS', 'UTF-8'))
97+
: '';
98+
$syntax = 0 < preg_match('/<div class="methodsynopsis dc-description">(.*?)<\/div>/s', $data, $m)
99+
? trim_multiline($m[1])
100+
: '';
101+
$desc = 0 < preg_match('/<title>(.*?)<\/title>/s', $data, $m)
102+
? trim_multiline(mb_convert_encoding($m[1], 'SJIS', 'UTF-8'))
103+
: '';
104+
// if( empty($refname) || empty($syntax) ) {
105+
// echo $url . "\n";
106+
// }
107+
$kwdhlp .= $refname . " /// " . (empty($syntax) ? "" : $syntax . "\\n") . $desc . "\r\n";
108+
$kwd .= $refname . "\r\n";
109+
}
110+
111+
//var_dump($func_urls);
112+
113+
file_put_contents("php.khp", $kwdhlp);
114+
file_put_contents("php.kwd", $kwd);
115+
file_put_contents("php2.kwd", $kwd2);
116+
117+
?>

php-readme.txt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
�T�N���G�f�B�^�p�̃L�[���[�h�E�L�[���[�h�w���v�t�@�C���ł��B
2+
3+
�E�t�@�C���̐���
4+
5+
�@php-readme.txt
6+
�@�@���̃t�@�C��
7+
8+
�@php.khp
9+
�@�@�L�[���[�h�w���v�t�@�C��
10+
11+
�@php.kwd
12+
�@�@�L�[���[�h�t�@�C��
13+
14+
�@php2.kwd
15+
�@�@�L�[���[�h�t�@�C��(�\���)
16+
17+
�@php-mkkwd.php
18+
�@�@�L�[���[�h�E�L�[���[�h�w���v�t�@�C�������p�̃X�N���v�g
19+
20+
�ŐV�ŁFhttp://svn.coderepos.org/share/platform/sakura-editor/keyword/php
21+
22+
sharkpp

0 commit comments

Comments
 (0)