3 # Author: Colomban Wendling <colomban@geany.org>
4 # License: GPL v2 or later
6 # Updates the `identifiers` entry in data/filetypes.python.in.
7 # Requires Python 3.10+.
11 file=data
/filedefs
/filetypes.python.
in
15 # sort_filter [exclude...]
18 from sys import stdin; \
19 items=set(stdin.read().strip().split("\n")); \
20 exclude=['"$(for a in "$@
"; do printf "'%s', " "$a"; done)"']; \
21 print(" ".join(sorted([i for i in items if i not in exclude])))
25 keywords
=$
(python3
-c 'from keyword import kwlist, softkwlist; print("\n".join(kwlist + softkwlist))')
26 builtins
=$
(python3
-c 'print("\n".join(dir(__builtins__)))')
28 primary
=$
(echo "$keywords" | sort_filter
)
29 # builtins, but excluding keywords that are already listed in primary=
30 identifiers
=$
(echo "$builtins" | sort_filter
$primary)
32 sed -e "s/^primary=.*$/primary=$primary/" \
33 -e "s/^identifiers=.*$/identifiers=$identifiers/" \