File: lal.py

package info (click to toggle)
gnat-gps 18-5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 45,716 kB
  • sloc: ada: 362,679; python: 31,031; xml: 9,597; makefile: 1,030; ansic: 917; sh: 264; java: 17
file content (28 lines) | stat: -rw-r--r-- 792 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
"""
This file provides libAdaLang integration in GPS.

"""

###########################################################################
# No user customization below this line
###########################################################################

import libadalang


def _location(self, open=True):
    """
    Return GPS.EditorLocation corresponding to start of given AdaNode.
    If open=False and there is no open editor with the unit, return None.
    """
    file = GPS.File(self.unit.filename)
    buffer = GPS.EditorBuffer.get(file, open=open)

    if buffer:
        start = self.token_start.sloc_range.start
        return buffer.at(int(start.line), int(start.column))
    else:
        return None

# Register new method in AdaNode
libadalang.AdaNode.gps_location = _location