[CEDET-devel] speedbar + python code
Brought to you by:
zappo
From: Mike K. <mik...@gm...> - 2013-02-23 13:13:33
|
Hi all, A few days ago I've found something that may be considered a bug in speedbar. There seems to be a 'code' entry in speedbar file's structure list. I figured out that when file has structure like this (comments before the function definitions are used by a script to generate documentation): ''' .. function:: makeFolder(self, params) blahblah :param path: blah :type path: string :rtype: boolean :raises: foobar ''' def makeFolder(self, params): if 'path' not in params: raise Exception('Path not received') .............. return True ''' .. function:: ifExists(self, params) ............... ''' def ifExists.............. Speedbar behaves in a strange way: 1) code unfolded (Dunno why python comments starting with ''' get caught by cedet and placed into 'code') http://imagebin.org/247551 2) code folded (note, only the first line disappears) http://imagebin.org/247552 Thanks to Eric Ludlam, there now exists a workaround: (define-mode-local-override semantic-format-tag-abbreviate python-mode (tag &optional parent color) "Format an abbreviated tag for python. Shortens 'code' tags, but passes through for others." (cond ((semantic-tag-of-class-p tag 'code) ;; Just take the first line. (let ((name (semantic-tag-name tag))) (when (string-match "\n" name) (setq name (substring name 0 (match-beginning 0)))) name)) (t (semantic-format-tag-**abbreviate-default tag parent color)))) I have two questions to ask: 1) Why does 'code' entry contain documentation (generally speaking, code comments instead of real code)? 2) Is there a real need for 'code' element in speedbar? Personally, I consider it rather useless, as speedbar horizontal size is meant to be relatively small, thus code navigation in speedbar would be pretty uncomfortable. So, discuss! :) -- Best wishes, Mike Koltsov. |