~iferca/yape/trunk

« back to all changes in this revision

Viewing changes to src/yape/editor/languages/resource.py

  • Committer: Israel Fernández Cabrera
  • Date: 2008-10-03 21:12:17 UTC
  • Revision ID: iferca@gmail.com-20081003211217-uu1df2ucq3wd67nd
YaPe project moved to the new YaPe project structure. Old one will work fine but it was not suitable for the next development phases

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python
 
2
# -*- coding: UTF-8 -*-
 
3
 
 
4
__license__ = "GPL V.2 or (at your option) any later version"
 
5
__copyright__ = "2007, Israel Fernández Cabrera"
 
6
__author__ = "Israel Fernández Cabrera <iferca@gmail.com>"
 
7
 
 
8
 
 
9
from lang import *
 
10
 
 
11
 
 
12
class LanguageResource(object):
 
13
    def __init__(self, sourceLanguage):
 
14
        self._language = sourceLanguage
 
15
        try:
 
16
            langName = "Language%s" % self.getLanguageName()
 
17
            self._langManager = globals()[langName]()
 
18
        except KeyError, e:
 
19
            self._langManager = LanguageBase()
 
20
 
 
21
    def getSuggestionManager(self):
 
22
        return self._langManager.getSuggestionManager()
 
23
 
 
24
    def getSourceStructure(self, module, path):
 
25
        """
 
26
        Returns an special source structure only available for python
 
27
        """
 
28
        return self._langManager.getSourceStructure(module, path)
 
29
 
 
30
    def getFileInfo(self, text):
 
31
        """
 
32
        Returns the editor's content information structure suitable to be iterated
 
33
        and shown i.e. as a tree in a GUI
 
34
        """
 
35
        return self._langManager.getFileInfo(text)
 
36
 
 
37
    def getLanguageName(self):
 
38
        """
 
39
        Return the actual language name
 
40
        """
 
41
        return None if not self._language else self._language.get_name()
 
42
 
 
43
    def hasMultilineCommentCharacter(self):
 
44
        """
 
45
        Returns True if the language has multiline comment character, False otherwise
 
46
        """
 
47
        return self._langManager.hasMultilineCommentCharacter()
 
48
 
 
49
    def getMultiLineCommentCharacter(self):
 
50
        """
 
51
        Returns the comment characters that match the actual language
 
52
        """
 
53
        return self._langManager.getMultiLineCommentCharacter()
 
54
 
 
55
    def getCommentCharacter(self):
 
56
        """
 
57
        Returns the comment character that match the actual language
 
58
        """
 
59
        return self._langManager.getCommentCharacter()
 
60
 
 
61
 
 
62
class DefaultLanguageResource(LanguageResource):
 
63
    """
 
64
    Default LanguageResource to provide an unsaved/unopened editor with a default
 
65
    behaviour
 
66
    """
 
67
    def __init__(self):
 
68
        super(DefaultLanguageResource, self).__init__(None)
 
69
 
 
70
    def getFileInfo(self, text):
 
71
        return None
 
72
 
 
73
    def getLanguageName(self):
 
74
        return "text"
 
75
 
 
76
    def hasMultilineCommentCharacter(self):
 
77
        return False
 
78
 
 
79
    def getLanguageName(self):
 
80
        return "None"
 
81
 
 
82
    def getCommentCharacter(self):
 
83
        return "#"