[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kdevelop-bugs
Subject:    [Bug 106379] Support for extensionless filenames for source
From:       kdevelop-bugs-admin () barney ! cs ! uni-potsdam ! de
Date:       2005-05-28 8:35:30
Message-ID: 20050528083530.30828.qmail () ktown ! kde ! org
[Download RAW message or body]

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
         
http://bugs.kde.org/show_bug.cgi?id=106379         




------- Additional Comments From hattons globalsymmetry com  2005-05-28 10:35 -------
http://www.kdevelop.org/HEAD/doc/api/html/astyle__part_8cpp-source.html


Just looking at the one part of this problem related to AStyle, I can see 
changing this would require a fundamental change in how file types are 
currently determined.  Or, at least overloading functions throughout 
KDevelop.  My own inclination is that having every component determine the 
type of file it's working with is not an ideal design.  It seems preferable 
to have one component determine file type, and then pass that information on 
to "clients". So, for example, rather than passing the KParts::Part, and 
determining it's type by examining the file names directly, there could 
either be a globally available function to determine file type called by 
functions such as activePartChanged to determine the type of file, or KPart 
could have the functionality built in. 

void AStylePart::activePartChanged(KParts::Part *part)
{
  bool enabled = false;

  KParts::ReadWritePart *rw_part = dynamic_cast<KParts::ReadWritePart*>(part);

  if (rw_part)
  {
    KTextEditor::EditInterface *iface = 
dynamic_cast<KTextEditor::EditInterface*>(rw_part);

    if (iface)
    {
      QString extension = rw_part->url().path();

      int pos = extension.findRev('.');
      if (pos >= 0)
        extension = extension.mid(pos);
      if (extension == ".h"   || extension == ".c" || extension == ".java"
       || extension == ".cpp" || extension == ".hpp"
       || extension == ".C"   || extension == ".H"
       || extension == ".cxx" || extension == ".hxx"
       || extension == ".inl" || extension == ".tlh"
       || extension == ".moc" || extension == ".xpm"
       || extension == ".diff"|| extension == ".patch"
       || extension == ".hh"  || extension == ".cc"
       || extension == ".c++" || extension == ".h++")
	enabled = true;
    }
  }

  _action->setEnabled(enabled);
}

In addition to the options of looking at the filename extension, and the mode 
specification, it might be reasonable to determine file type by registering a 
particular file as source when it appears in a #include of a known source 
file.  Of course that would require having it in the include path, and having 
KDevelop examine the include path.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic