@@ -47,16 +47,104 @@ Java_com_itsaky_androidide_treesitter_TSNode_getChildByFieldName(
4747 return found;
4848}
4949
50- JNIEXPORT jstring JNICALL Java_com_itsaky_androidide_treesitter_TSNode_getFieldNameForChild
51- (JNIEnv* env, jobject self, jint index) {
52- const char * fieldName = ts_node_field_name_for_child (_unmarshalNode (env, self), index);
53- if (fieldName == NULL ) {
54- return NULL ;
55- }
56-
57- jstring result = env->NewStringUTF (fieldName);
58- free ((char *)fieldName);
59- return result;
50+ JNIEXPORT jstring JNICALL
51+ Java_com_itsaky_androidide_treesitter_TSNode_getFieldNameForChild (JNIEnv* env,
52+ jobject self,
53+ jint index) {
54+ const char * fieldName =
55+ ts_node_field_name_for_child (_unmarshalNode (env, self), index);
56+ if (fieldName == NULL ) {
57+ return NULL ;
58+ }
59+
60+ jstring result = env->NewStringUTF (fieldName);
61+ return result;
62+ }
63+
64+ JNIEXPORT jobject JNICALL
65+ Java_com_itsaky_androidide_treesitter_TSNode_getChildByFieldId (JNIEnv* env,
66+ jobject self,
67+ jint fieldId) {
68+ return _marshalNode (
69+ env, ts_node_child_by_field_id (_unmarshalNode (env, self), fieldId));
70+ }
71+
72+ JNIEXPORT jobject JNICALL
73+ Java_com_itsaky_androidide_treesitter_TSNode_getNextSibling (JNIEnv* env,
74+ jobject self) {
75+ return _marshalNode (env, ts_node_next_sibling (_unmarshalNode (env, self)));
76+ }
77+
78+ JNIEXPORT jobject JNICALL
79+ Java_com_itsaky_androidide_treesitter_TSNode_getPreviousSibling (JNIEnv* env,
80+ jobject self) {
81+ return _marshalNode (env, ts_node_prev_sibling (_unmarshalNode (env, self)));
82+ }
83+
84+ JNIEXPORT jobject JNICALL
85+ Java_com_itsaky_androidide_treesitter_TSNode_getNextNamedSibling (JNIEnv* env,
86+ jobject self) {
87+ return _marshalNode (env,
88+ ts_node_next_named_sibling (_unmarshalNode (env, self)));
89+ }
90+
91+ JNIEXPORT jobject JNICALL
92+ Java_com_itsaky_androidide_treesitter_TSNode_getPreviousNamedSibling (
93+ JNIEnv* env, jobject self) {
94+ return _marshalNode (env,
95+ ts_node_prev_named_sibling (_unmarshalNode (env, self)));
96+ }
97+
98+ JNIEXPORT jobject JNICALL
99+ Java_com_itsaky_androidide_treesitter_TSNode_getFirstChildForByte (JNIEnv* env,
100+ jobject self,
101+ jint offset) {
102+ return _marshalNode (
103+ env, ts_node_first_child_for_byte (_unmarshalNode (env, self), offset));
104+ }
105+
106+ JNIEXPORT jobject JNICALL
107+ Java_com_itsaky_androidide_treesitter_TSNode_getFirstNamedChildForByte (
108+ JNIEnv* env, jobject self, jint offset) {
109+ return _marshalNode (env, ts_node_first_named_child_for_byte (
110+ _unmarshalNode (env, self), offset));
111+ }
112+
113+ JNIEXPORT jobject JNICALL
114+ Java_com_itsaky_androidide_treesitter_TSNode_getDescendantForByteRange (
115+ JNIEnv* env, jobject self, jint start, jint end) {
116+ return _marshalNode (env, ts_node_descendant_for_byte_range (
117+ _unmarshalNode (env, self), start, end));
118+ }
119+
120+ JNIEXPORT jobject JNICALL
121+ Java_com_itsaky_androidide_treesitter_TSNode_getNamedDescendantForByteRange (
122+ JNIEnv* env, jobject self, jint start, jint end) {
123+ return _marshalNode (env, ts_node_named_descendant_for_byte_range (
124+ _unmarshalNode (env, self), start, end));
125+ }
126+
127+ JNIEXPORT jobject JNICALL
128+ Java_com_itsaky_androidide_treesitter_TSNode_getDescendantForPointRange (
129+ JNIEnv* env, jobject self, jobject start, jobject end) {
130+ TSPoint sPoint = _unmarshalPoint (env, start);
131+ TSPoint ePoint = _unmarshalPoint (env, end);
132+ return _marshalNode (env, ts_node_descendant_for_point_range (
133+ _unmarshalNode (env, self), sPoint , ePoint));
134+ }
135+
136+ JNIEXPORT jobject JNICALL
137+ Java_com_itsaky_androidide_treesitter_TSNode_getNamedDescendantForPointRange (
138+ JNIEnv* env, jobject self, jobject start, jobject end) {
139+ TSPoint sPoint = _unmarshalPoint (env, start);
140+ TSPoint ePoint = _unmarshalPoint (env, end);
141+ return _marshalNode (env, ts_node_named_descendant_for_point_range (
142+ _unmarshalNode (env, self), sPoint , ePoint));
143+ }
144+
145+ JNIEXPORT jboolean JNICALL Java_com_itsaky_androidide_treesitter_TSNode_isEqualTo
146+ (JNIEnv* env, jobject self, jobject other) {
147+ return (jboolean) ts_node_eq (_unmarshalNode (env, self), _unmarshalNode (env, other));
60148 }
61149
62150JNIEXPORT jstring JNICALL
@@ -98,10 +186,10 @@ JNIEXPORT jstring JNICALL Java_com_itsaky_androidide_treesitter_TSNode_getType(
98186 return result;
99187}
100188
101- JNIEXPORT jint JNICALL Java_com_itsaky_androidide_treesitter_TSNode_getSymbol
102- ( JNIEnv* env, jobject self) {
103- return (jint) ts_node_symbol (_unmarshalNode (env, self));
104- }
189+ JNIEXPORT jint JNICALL Java_com_itsaky_androidide_treesitter_TSNode_getSymbol (
190+ JNIEnv* env, jobject self) {
191+ return (jint)ts_node_symbol (_unmarshalNode (env, self));
192+ }
105193
106194JNIEXPORT jboolean JNICALL
107195Java_com_itsaky_androidide_treesitter_TSNode_isNull (JNIEnv* env, jobject self) {
0 commit comments