File: base.py

package info (click to toggle)
fortran-language-server 3.2.2%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,268 kB
  • sloc: python: 9,688; f90: 1,195; fortran: 30; makefile: 28; ansic: 20
file content (119 lines) | stat: -rw-r--r-- 2,858 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
from __future__ import annotations

from fortls.constants import BASE_TYPE_ID
from fortls.helper_functions import fortran_md


# Fortran object classes
class FortranObj:
    def __init__(self):
        self.vis: int = 0
        self.def_vis: int = 0
        self.doc_str: str = None
        self.parent = None
        self.eline: int = -1
        self.implicit_vars = None

    def set_default_vis(self, new_vis: int):
        self.def_vis = new_vis

    def set_visibility(self, new_vis: int):
        self.vis = new_vis

    def set_parent(self, parent_obj):
        self.parent = parent_obj

    def add_doc(self, doc_str: str):
        self.doc_str = doc_str

    def update_fqsn(self, enc_scope=None):
        return None

    def end(self, line_number: int):
        self.eline = line_number

    def resolve_inherit(self, obj_tree, inherit_version):
        return None

    def require_inherit(self):
        return False

    def resolve_link(self, obj_tree):
        return None

    def require_link(self):
        return False

    def get_type(self, no_link=False):
        return BASE_TYPE_ID

    def get_type_obj(self, obj_tree):
        return None

    def get_desc(self):
        return "unknown"

    def get_snippet(self, name_replace=None, drop_arg=-1):
        return None, None

    def get_documentation(self):
        return self.doc_str

    def get_hover(self, long=False, drop_arg=-1) -> tuple[str | None, str | None]:
        return None, None

    def get_hover_md(self, long=False, drop_arg=-1) -> str:
        msg, docs = self.get_hover(long, drop_arg)
        return fortran_md(msg, docs)

    def get_signature(self, drop_arg=-1):
        return None, None, None

    def get_interface(self, name_replace=None, drop_arg=-1, change_strings=None):
        return None

    def get_children(self, public_only=False):
        return []

    def get_ancestors(self):
        return []

    def get_diagnostics(self):
        return []

    def get_implicit(self):
        if self.parent is None:
            return self.implicit_vars
        parent_implicit = self.parent.get_implicit()
        if (self.implicit_vars is not None) or (parent_implicit is None):
            return self.implicit_vars
        return parent_implicit

    def get_actions(self, sline, eline):
        return None

    def is_optional(self):
        return False

    def is_mod_scope(self):
        return False

    def is_callable(self):
        return False

    def is_external_int(self):
        return False

    def is_abstract(self):
        return False

    def req_named_end(self):
        return False

    def check_valid_parent(self):
        return True

    def check_definition(self, obj_tree, known_types: dict = None, interface=False):
        if known_types is None:
            known_types = {}
        return None, known_types