[Gd-chatter] r11185 - in trunk/libraries/network/koala: sources/examples/code-browser www/code-browser
turbo24prg at gwydiondylan.org
turbo24prg at gwydiondylan.org
Sun Feb 18 05:23:15 CET 2007
Author: turbo24prg
Date: Sun Feb 18 05:23:14 2007
New Revision: 11185
Modified:
trunk/libraries/network/koala/sources/examples/code-browser/library.dylan
trunk/libraries/network/koala/sources/examples/code-browser/main.dylan
trunk/libraries/network/koala/www/code-browser/project.dsp
Log:
Job: koala
* implemented some more features of environment
Modified: trunk/libraries/network/koala/sources/examples/code-browser/library.dylan
==============================================================================
--- trunk/libraries/network/koala/sources/examples/code-browser/library.dylan (original)
+++ trunk/libraries/network/koala/sources/examples/code-browser/library.dylan Sun Feb 18 05:23:14 2007
@@ -23,7 +23,7 @@
use source-records;
use release-info;
use regular-expressions;
-
+//use environment-deuce;
end;
@@ -44,5 +44,6 @@
application-filename,
application-arguments };
use release-info;
+// use environment-deuce;
end;
Modified: trunk/libraries/network/koala/sources/examples/code-browser/main.dylan
==============================================================================
--- trunk/libraries/network/koala/sources/examples/code-browser/main.dylan (original)
+++ trunk/libraries/network/koala/sources/examples/code-browser/main.dylan Sun Feb 18 05:23:14 2007
@@ -2,14 +2,11 @@
Synopsis: Brwose FD environment objects
Author: Andreas Bogk
-define class <code-browser-page> (<dylan-server-page>)
- slot project;
-end;
+define thread variable *project* = #f;
-define taglib code-browser ()
-end;
+define taglib code-browser () end;
-define page project-page (<code-browser-page>)
+define page code-browser-page (<dylan-server-page>)
(url: "/project",
source: "code-browser/project.dsp")
end;
@@ -21,30 +18,31 @@
if(~project-name | project-name = "")
project-name := "minimal-console-compiler";
end if;
- page.project := find-project(project-name);
- if(page.project)
- open-project-compiler-database(page.project,
- warning-callback: callback-handler,
- error-handler: callback-handler);
- parse-project-source(page.project);
- next-method();
- else
- application-error(format-string: "No such project %s",
- format-arguments: vector(project-name));
- end if;
+ dynamic-bind(*project* = find-project(project-name))
+ if (*project*)
+ open-project-compiler-database(*project*,
+ warning-callback: callback-handler,
+ error-handler: callback-handler);
+ parse-project-source(*project*);
+ next-method();
+ else
+ application-error(format-string: "No such project %s",
+ format-arguments: vector(project-name));
+ end if;
+ end;
end method respond-to-get;
define tag project-name in code-browser
(page :: <code-browser-page>, response :: <response>)
()
- write(output-stream(response), page.project.project-name);
+ write(output-stream(response), *project*.project-name);
end;
define tag project in code-browser
(page :: <code-browser-page>, response :: <response>)
()
- format(output-stream(response), "%=", page.project);
+ format(output-stream(response), "%=", *project*);
end;
define tag project-sources in code-browser
@@ -52,7 +50,7 @@
()
dynamic-bind(*check-source-record-date?* = #f)
format(response.output-stream, "<pre>\n");
- for(source in page.project.project-sources)
+ for(source in *project*.project-sources)
block()
format(response.output-stream,
"<h3>%s</h3> module <strong>%s</strong>\n",
@@ -74,25 +72,94 @@
define function markup-dylan-source(source :: <string>)
=> (processed-source :: <string>);
- regexp-replace(regexp-replace(source, "&", "&"), "<", "<");
+ regexp-replace(regexp-replace(regexp-replace(source, "&", "&"), "<", "<"), ">", ">");
end function markup-dylan-source;
+define tag project-direct-superclasses in code-browser
+ (page :: <code-browser-page>, response :: <response>)
+ ()
+ format(response.output-stream, "<ul>\n");
+ for (superclass in class-direct-superclasses(*project*,
+ find-environment-object(*project*, "<string>",
+ library: project-library(*project*), module: first(library-modules(*project*, project-library(*project*))))))
+ format(response.output-stream, "<li>%s</li>\n", markup-dylan-source(environment-object-display-name(*project*, superclass, #f)));
+ end for;
+ format(response.output-stream, "</ul>\n");
+end;
+define tag project-direct-subclasses in code-browser
+ (page :: <code-browser-page>, response :: <response>)
+ ()
+ format(response.output-stream, "<ul>\n");
+ for (subclass in class-direct-subclasses(*project*,
+ find-environment-object(*project*, "<string>",
+ library: project-library(*project*), module: first(library-modules(*project*, project-library(*project*))))))
+ format(response.output-stream, "<li>%s</li>\n", markup-dylan-source(environment-object-display-name(*project*, subclass, #f)));
+ end for;
+ format(response.output-stream, "</ul>\n");
+end;
define tag project-used-libraries in code-browser
(page :: <code-browser-page>, response :: <response>)
()
+
format(response.output-stream, "<ul>\n");
- for(library in project-used-libraries(page.project, page.project))
- let name = environment-object-display-name(page.project, library, #f);
+ for (library in project-used-libraries(*project*, *project*))
+ let name = environment-object-display-name(*project*, library, #f);
format(response.output-stream,
"<li><a href=\"/project?name=%s\">%s</a></li>\n",
name, name);
end for;
format(response.output-stream, "</ul>\n");
-end;
+end;
+
+define tag project-library in code-browser
+ (page :: <code-browser-page>, response :: <response>)
+ ()
+ format(response.output-stream, "%s", environment-object-display-name(*project*, project-library(*project*), #f));
+end;
+
+define tag project-modules in code-browser
+ (page :: <code-browser-page>, response :: <response>)
+ ()
+ format(response.output-stream, "<ul>\n");
+ for (module in library-modules(*project*, project-library(*project*)))
+ format(response.output-stream, "<li>%s</li>\n", environment-object-display-name(*project*, module, #f));
+ end for;
+ format(response.output-stream, "</ul>\n");
+end;
+
+define tag find-section-for-definition in code-browser
+ (page :: <code-browser-page>, response :: <response>)
+ ()
+ format(response.output-stream, "%s", markup-dylan-source(source-location-string(environment-object-source-location(*project*, find-environment-object(*project*, "concatenate",
+ library: project-library(*project*), module: first(library-modules(*project*, project-library(*project*))))))));
+end;
+
+define tag generic-function-object-methods in code-browser
+ (page :: <code-browser-page>, response :: <response>)
+ ()
+ format(response.output-stream, "<ul>\n");
+ for (m in generic-function-object-methods(*project*,
+ find-environment-object(*project*, "concatenate",
+ library: project-library(*project*), module: first(library-modules(*project*, project-library(*project*))))))
+ format(response.output-stream, "<li>%s</li>\n", markup-dylan-source(environment-object-display-name(*project*, m, #f)));
+ end;
+ format(response.output-stream, "</ul>\n");
+end;
+
+define tag find-section-for-method in code-browser
+ (page :: <code-browser-page>, response :: <response>)
+ ()
+ format(response.output-stream, "%s", markup-dylan-source(source-location-string(
+ environment-object-source-location(*project*, first(generic-function-object-methods(*project*,
+ find-environment-object(*project*, "concatenate",
+ library: project-library(*project*), module: first(library-modules(*project*, project-library(*project*))))))))));
+end;
+//environment-object-source-location source-location-string
+//source-location-source-record
/// Main
Modified: trunk/libraries/network/koala/www/code-browser/project.dsp
==============================================================================
--- trunk/libraries/network/koala/www/code-browser/project.dsp (original)
+++ trunk/libraries/network/koala/www/code-browser/project.dsp Sun Feb 18 05:23:14 2007
@@ -6,18 +6,23 @@
</head>
<body>
- <div id="content">
- <div id="name">
- <h1>Browsing project <strong><code-browser:project-name/></strong>.</h1>
- </div>
- <div id="used-libraries">
+ <h1>Project: <code-browser:project-name/></h1>
+ <h2>Library: <code-browser:project-library/></h2>
+ <h2>Modules</h2>
+ <code-browser:project-modules/>
<h2>Used libraries</h2>
<code-browser:project-used-libraries/>
- </div>
- <div id="source">
- <h2>Source Code</h2>
- <code-browser:project-sources/>
- </div>
- </div>
+ <h2>Superclasses of <string></h2>
+ <code-browser:project-direct-superclasses/>
+ <h2>Subclasses of <string></h2>
+ <code-browser:project-direct-subclasses/>
+ <h2>Methods of concatenate</h2>
+ <code-browser:generic-function-object-methods/>
+ <h2>Source for method concatenate</h2>
+ <code-browser:find-section-for-method/>
+ <h2>Definition of generic concatenate</h2>
+ <code-browser:find-section-for-definition/>
+ <h2>Source Code</h2>
+ <code-browser:project-sources/>
</body>
</html>
More information about the chatter
mailing list