Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander...

Post on 13-Jun-2020

3 views 0 download

Transcript of Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander...

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

Accomplishments and Challenges of KDevelop Team

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

We understand your C++

since 2002

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

We understand your C++

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

We understand your C++

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

We understand your buildsystem

Auto Hell Tools?qmake?cmake?make?

whatever else?

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

We do support KDE4 development

How?

http://www.kdedevelopers.org/node/2286

Thanks to Andras Mantia

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

We do support KDE4 development

cmake -G KDevelop3

ok, ok

cmake -DCMAKE_INSTALL_PREFIX=path_to_kde4_install_dir -DCMAKE_BUILD_TYPE=debugfull path_to_source_dir

-DKDE4_BUILD_TESTS -G KDevelop3

Thanks to Alex Neundorffor CMake generator

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

We do support KDE4 development

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

We do support KDE4 development

Some environment vars to setQTDIR=<your qt dir>

KDEDIR=<your kde4 dir>KDE4_DIR=<your kde4 dir>

PATH=$QTDIR/bin:$KDEDIR/bin:$PATH

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

We do support KDE4 development

Some more environment vars to set

KDEHOME=path_to_local_KDE4 folder (/home/user/.kde4) KDETMP=path_to_KDE4 temp dir (/tmp/user-kde4)

KDEVARTMP=similar to the above in /var (/var/tmp/user-kde4)

Don't forget abouteval ̀ dbus-launch --auto-syntax̀

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

More cool stuff: Ruby Debugger

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

We still suck

not as easy

not as complete

not as slick

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

Rock on!

KDevelop4

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

KDevelop 4

Cleaner architecturePowerful platform

Speaking the languages nativelyNative CMake support

Teamwork

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

KDevelop 4: C++

Lexer Parser Binder

Token Stream AST Code Model

DU-Chain Builder

DU Chain

Syntax Checker Class TreeCode Completion

Smart Highlighting

Refactoring?

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

KDevelop: C++: Definition-Use

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

Speaking C#, Java, Ruby, etc.

Not so crazy to implement all these manuallyCrazy enough to use a tool

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

kdev-pg: not only the parser generator

-- test.g

%token ID ("identifier") ;;

identifier + identifier-> expression ;;

ID-> identifier ;;

#kdev-pg –output=test test.g

test_ast.htest_default_visitor.cpp test_default_visitor.h test_parser.cpptest_parser.htest_visitor.cpptest_visitor.h

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

kdev-pg: not only the parser generator

struct ast_node { enum ast_node_kind_enum { Kind_expression = 1000, Kind_identifier = 1001, AST_NODE_KIND_COUNT }; int kind; std::size_t start_token; std::size_t end_token; }; struct expression_ast: public ast_node { enum { KIND = Kind_expression }; }; struct identifier_ast: public ast_node { enum { KIND = Kind_identifier }; };

class visitor {public: virtual void visit_node(ast_node *node) {} virtual void visit_expression(expression_ast *) {} virtual void visit_identifier(identifier_ast *) {}};

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

CMake

Bringing it to the next levelHow to interoperate with CMake?

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

Teamwork Mode

Client/ServerFile Collaboration

ConversationPatch Management

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

The next step is WORLD DOMINATION

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

The next step is WORLD DOMINATION

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

The next step is WORLD DOMINATION

2005

-08

2005

-09

2005

-10

2005

-11

2005

-12

2006

-01

2006

-02

2006

-03

2006

-04

2006

-05

2006

-06

2006

-07

2006

-08

2006

-09

0

25

50

75

100

125

150

175

200

225

250

275KDevelop 3.4 and 4.0 commit rate

Sebastian Kügler <sebas@kde.org>,

FrOSCon 2006

Alexander Dymo <adymo@kdevelop.org>, aKademy 2006

Join us NOW!

Thanks andany questions?