• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdevelop API Reference
  • KDE Home
  • Contact Us
 

kdevplatform/language/duchain

Todo List
Member APPENDED_LIST_FIRST (container, type, name)
Make these things a bit faster(less recursion)
Member APPENDED_LIST_FIRST_STATIC (type, name)
Make these things a bit faster(less recursion)
Member collectImporters (ImportanceChecker &checker, ParsingEnvironmentFile *current, QSet< ParsingEnvironmentFile * > &visited, QSet< ParsingEnvironmentFile * > &collected)
Only collect uses within currently loaded projects
Member destructorForName (const Identifier &name)
make this language-neutral
Member FOREACH_FUNCTION_STATIC (item, container)
Document this a bit more
Page Implementing Definition-Use Chains for a specific language
complete this section
Member KDevelop::AbstractContextBuilder< T, NameT >::contextStack () const
Audit whether access to the context stack is still required, and provide replacement functionality if possible.
Member KDevelop::AbstractContextBuilder< T, NameT >::nextContextIndex ()

further delineate the role of this function and rename / document better.

make private again?

Member KDevelop::AbstractContextBuilder< T, NameT >::openContextInternal (const RangeInRevision &range, DUContext::ContextType type, const QualifiedIdentifier &identifier)
We should also somehow make sure we don't get quadratic worst-case effort while updating.
Member KDevelop::AbstractDeclarationNavigationContext::eventuallyMakeTypeLinks (KDevelop::AbstractType::Ptr type)
This is C++ specific, move into subclass
Member KDevelop::AbstractDeclarationNavigationContext::html (bool shorten=false) override
Enumerations
Member KDevelop::AbstractDeclarationNavigationContext::htmlClass ()
How can we get here? and should this really be a class?
Member KDevelop::AbstractFunctionDeclarationData::m_isInline
move into ClassFunctionDeclaration(Only valid for class-functions)
Member KDevelop::AbstractNavigationWidget::embeddedWidgetRight ()
Do this through a public interface post 4.2
Member KDevelop::AbstractTypeBuilder< T, NameT, LangugageSpecificTypeBuilderBase >::openTypeFromName (const QualifiedIdentifier &id, T *typeNode, bool needClass)

only functions may have multiple declarations here

What about position?

Member KDevelop::AbstractUseBuilder< T, NameT, LanguageSpecificUseBuilderBase >::newUse (T *node, const KDevelop::DeclarationPointer &declaration)
Work this over! We must not pass around "Declaration*" values if the duchain is not locked.
Member KDevelop::commentRepository ()
Use reference counting
Member KDevelop::Declaration::allocateOwnIndex ()
Fix multithreading stuff with template instantiation, preferably using some internal mutexes
Member KDevelop::Declaration::isTypeAlias () const
see whether it would be useful to create an own TypeAliasDeclaration sub-class for this
Member KDevelop::DeclarationData::m_declaration
Eventually move this and all the definition/declaration coupling functionality somewhere else
Member KDevelop::DeclarationId::declaration (const TopDUContext *context, bool instantiateIfRequired=true) const
think this over once we don't pull in all imported top-context any more
Member KDevelop::DeclarationId::declarations (const TopDUContext *context) const
think this over once we don't pull in all imported top-context any more
Member KDevelop::DUChainBase::topContext () const
Move the reference to the top-context right into this class, as it's common to all inheriters
Class KDevelop::DUContext
change child relationships to a linked list within the context?
Member KDevelop::DUContext::DeclarationList
Should be protected, moved here temporarily until I have figured out why the gcc 4.1.3 fails in cppducontext.h:212, which should work (within kdevelop)
Member KDevelop::DUContext::findLocalDeclarationsInternal (const IndexedIdentifier &identifier, const CursorInRevision &position, const AbstractType::Ptr &dataType, DeclarationList &ret, const TopDUContext *source, SearchFlags flags) const
Eventually do efficient iteration-free filtering
Member KDevelop::DUContext::mergeDeclarationsInternal (QVector< QPair< Declaration *, int >> &definitions, const CursorInRevision &position, QHash< const DUContext *, bool > &hadContexts, const TopDUContext *source, bool searchInParents=true, int currentDepth=0) const
this is language-dependent)
Member KDevelop::DUContextDynamicData::addChildContext (DUContext *context)
Do binary search to find the position
Member KDevelop::DUContextDynamicData::addDeclaration (Declaration *declaration)
Do binary search to find the position
Member KDevelop::DumpDotGraph::dotGraph (KDevelop::DUContext *context, bool shortened=false)
maybe get this as a parameter
Member KDevelop::escapeForBracketMatching (QString str)
this hackery sucks
Member KDevelop::FunctionDefinition::definition (const Declaration *decl)
Find better ways of deciding which definition to use
Member KDevelop::FunctionType::arguments () const
Don't do the conversion
Class KDevelop::IndexedDeclarationHandler
move into own header
Member KDevelop::InstantiationInformation::InstantiationInformation (const InstantiationInformation &rhs, bool dynamic=true)
include some information for instantiation only with default parameters
Member KDevelop::QualifiedIdentifier::explicitlyGlobal () const
Remove this flag
Class KDevelop::TopDUContext

move the registration with DUChain here

move data to private d pointer classes

Member KDevelop::TopDUContext::applyAliases (const QualifiedIdentifier &previous, const SearchItem::Ptr &identifier, Acceptor &acceptor, const CursorInRevision &position, bool canBeNamespace, ApplyAliasesBuddyInfo *buddy, uint recursionDepth) const

Implement a cache so at least the global import checks don't need to be done repeatedly. The cache should be thread-local, using DUChainPointer for the hashed items, and when an item was deleted, it should be discarded

check iso c++ if using-directives should be respected on top-level when explicitly global

this is bad for a very big repository(the chains should be walked for the top-context instead)

Member KDevelop::TopDUContext::ast () const
Figure out logic to get rid of AST when it is not needed/useful
Member KDevelop::TopDUContext::indexForUsedDeclaration (Declaration *declaration, bool create=true)
Make m_usedDeclarationIds sorted, and find the decl. using binary search
Member KDevelop::TopDUContext::isOnDisk () const
Change this to releasingToDisk, and only enable it while saving a top-context to disk.
Member KDevelop::TopDUContextDynamicData::store ()

Save the meta-data into a repository, and only the actual content data into a file. This will make saving+loading more efficient, and will reduce the disk-usage. Then we also won't need to load the data if only the meta-data changed.

If we split up data and metadata, we don't need to do this

Member KDevelop::UsesCollector::startCollecting ()

Fail!

more intelligent

Member TypeUtils::targetType (const KDevelop::AbstractType::Ptr &type, const KDevelop::TopDUContext *topContext, bool *constant=nullptr)
remove constant and topContext
Page Using already created Definition-Use Chains in plugins

include a note on how to request loading of contexts from disk, and requesting parsing of files which are not currently in the duchain.

add mechanism to get at the AST

keep the AST in memory for loaded files

Member uSleepTime
Always prefer exactly that lock that is requested by the thread that has the foreground mutex, to reduce the amount of UI blocking.
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Wed Jan 20 2021 23:38:35 by doxygen 1.8.16 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kdevplatform/language/duchain

Skip menu "kdevplatform/language/duchain"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdevelop API Reference

Skip menu "kdevelop API Reference"
  • kdevplatform
  •   debugger
  •   documentation
  •   interfaces
  •   language
  •     assistant
  •     backgroundparser
  •     checks
  •     classmodel
  •     codecompletion
  •     codegen
  •     duchain
  •     editor
  •     highlighting
  •     interfaces
  •     util
  •   outputview
  •   project
  •   serialization
  •   shell
  •   sublime
  •   tests
  •   util
  •   vcs

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal