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

25
Sebastian Kügler <[email protected]>, FrOSCon 2006 Alexander Dymo <[email protected]>, aKademy 2006 Accomplishments and Challenges of KDevelop Team

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

Page 1: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

Accomplishments and Challenges of KDevelop Team

Page 2: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

We understand your C++

since 2002

Page 3: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

We understand your C++

Page 4: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

We understand your C++

Page 5: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

We understand your buildsystem

Auto Hell Tools?qmake?cmake?make?

whatever else?

Page 6: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

We do support KDE4 development

How?

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

Thanks to Andras Mantia

Page 7: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, 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

Page 8: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

We do support KDE4 development

Page 9: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, 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

Page 10: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, 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̀

Page 11: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

More cool stuff: Ruby Debugger

Page 12: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

We still suck

not as easy

not as complete

not as slick

Page 13: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

Rock on!

KDevelop4

Page 14: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

KDevelop 4

Cleaner architecturePowerful platform

Speaking the languages nativelyNative CMake support

Teamwork

Page 15: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, 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?

Page 16: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

KDevelop: C++: Definition-Use

Page 17: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

Speaking C#, Java, Ruby, etc.

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

Page 18: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, 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

Page 19: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, 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 *) {}};

Page 20: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

CMake

Bringing it to the next levelHow to interoperate with CMake?

Page 21: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

Teamwork Mode

Client/ServerFile Collaboration

ConversationPatch Management

Page 22: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

The next step is WORLD DOMINATION

Page 23: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

The next step is WORLD DOMINATION

Page 24: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, 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

Page 25: Sebastian Kügler , FrOSCon 2006 … · 2020-02-10 · Sebastian Kügler , FrOSCon 2006 Alexander Dymo , aKademy

Sebastian Kügler <[email protected]>,

FrOSCon 2006

Alexander Dymo <[email protected]>, aKademy 2006

Join us NOW!

Thanks andany questions?