jpsim / SourceKitten

An adorable little framework and command line tool for interacting with SourceKit.
MIT License
2.31k stars 226 forks source link

How to get the code by name using SourceKitten? #812

Open moonshineBoy opened 8 months ago

moonshineBoy commented 8 months ago

I have a main.swfit swift file like below:

import Foundation

func functest() {
  print(123)
}

I can use sourcekitten structure to get function names:

sourcekitten structure --file main.swift | jq '."key.substructure"[] | select(."key.kind" == "source.lang.swift.decl.function.free") | ."key.name"' 

and match the functions:

sourcekitten structure --file main.swift | jq '."key.substructure"[] | select(."key.kind" == "source.lang.swift.decl.function.free") '  

the result: image

but how to get source code ?

I want to implement a function given the function name(functest ) then return the source code

func functest() {
  print(123)
}