Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features...

Preview:

Citation preview

Dynamic Languages Toolkit

Presented by Andrey Tarantsov

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 2

Dynamic Languages Toolkit

Serves as a foundation for scripting and dynamically-typed language IDEsGeneralizes JDT code and follows its architectureProvides exemplary Python, Ruby and TCL IDEs

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 3

What’s Inside DLTK?

Runtime

Launch Debugger Console Testing

User Interface

Editor Views Wizards Preferences

Core

Model AST Search Engine Documentation

Static Checks AST DOM Refactoring Type Inference

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 4

Structural Project Model

Structural elements:ProjectsCode folders and code librariesSource modulesTypes, Functions, VariablesPackage and import declarations

Environment configuration

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 5

Abstract Syntax Tree

Extensible with language-specific node types and attributesUsed by completion, search and selection engines

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 6

Type Inference

Under researchAttempt to implement base algorithm in language-independent fashionUsed to improve:

code analysiscode assistancerefactoringcode verification and error detection

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 7

Code Analysis

Based on Core DLTK infrastructureResearch to provide common code analysis in a language-independent way

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 8

Launch and Debug

Environment configuration based on different interpreter types and their installationsFull featured Eclipse-based debugger for all scripting languages providedRemote debugging and launchingDebug based on open DBGp protocol (xdebug.org)

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 9

Interactive Console

Common console protocolRemote consoleCode completion & assistanceAll standard features

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 10

Editor

Easily extensible with:FoldingIndentingFormattingCode assistance / SelectionHighlighting / Advanced highlighting

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 11

Views

Script ExplorerOutlineCall HierarchiesNavigation (packages, types, functions)

Type HierarchyQuick Outline / Quick Hierarchy

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 12

More UI

Project propertiesWizardsPreference pagesSearch UI

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 13

DLTK ExtensibilityCore

Runtim

e

Model AST Search Engine Documentation

Static Checks AST DOM Refactoring Type Inference

Launch Debugger Console Testing

—Structure parser —Match locator

—Match parser

—Index requestor

—Documentation—providers

—Installation types

—Environment—configuration

—Interpreter-side—implementation

—Test framework—support

—Source parser

UI

Editor Views Wizards Preferences

—Highlighting

—Folding

—Indenting

—Code assist

—Configuration

—Interpreter-side—implementation

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 14

Codebase Statistics

TruStudio DLTK(current state)

Common 3.8 Mb 3.4 Mb

PHP 0.9 Mb —

Python 0.8 Mb 0.3 Mb

TCL — 0.3 Mb

Ratio 4:1 10:1

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 15

Which Languages is DLTK for?

Perfect Fit Good Fit

Don’t Fit

—Python—Ruby—Perl—PHP—VBScript—Smalltalk—ActionScript 3—ECMAScript 4—and much more…

—TCL—Lua—ECMAScript 3—Objective C—C++

—Lisp—Prolog—Scheme

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 16

Benefits for CommunityEnd users receive high-quality Python, Ruby and TCL IDEs with modern JDT-alike features

Developers may implement support for the language of their choice with less effort

Academic organisations get a base for research (type inference, code analysis, etc)

Benefits for other Eclipse projects interested in scripting languages support

Learn from JDT generalization experience

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 17

Current Community

Community site at www.eclipsedltk.orgComplete infrastructure: nightly and integration builds, CVS, bug trackerInterest and contributions from other projects and companies

Cisco Systems, Inc. (TCL support)Eclipse Perl IDE (e-p-i-c.sourceforge.org)

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 18

Initial Team

xored software, Inc.Andrey PlatovAndrey SobolevAndrey TarantsovDmitriy KovalevMikhail KaluginYuri Baburov

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 19

Deliverable Schedule

January 23, 2007Preliminary DLTK Core and TCL IDE complete

March 1, 2007DLTK Core 1.0 completePython IDE completeRuby IDE completeDocumentation complete

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 20

Future Directions

Type inference improvementsCode analysis improvementsRefactoring improvementsJDT integrationMore languages to be supported

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 21

Thank you!

Questions?Please take a look on screenshots following

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 22

Screenshots

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 23

More Screenshots

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 24

Even More Screenshots