Julia memiliki @edit
, @less
, dll. yang sangat berguna untuk membaca implementasi fungsi. Namun, Anda perlu menentukan serangkaian parameter (tipe) yang "cukup baik" agar dapat menemukan lokasi kode.
Sebaliknya, InteractiveCodeSearch
menyediakan beberapa makro untuk memilih kode yang ingin Anda baca secara interaktif.
@search show
, ekspresi panggilan fungsi @search show(stdout, "hello")
, tanda tangan panggilan fungsi @search show(::IO, ::String)
, nama modul @search Base
, nilai argumen @searchmethods 1
, dan tipe argumen @searchmethods ::Int
. using InteractiveCodeSearch
@search show # search method definitions
@searchmethods 1 # search methods defined for integer
@searchhistory # search history (Julia ≥ 0.7)
Perintah pencocokan interaktif. Misalnya:
@search
@search x [:shallow | :s | :recursive | :r]
Daftar lokasi file di mana x
ditentukan dalam pencocokan interaktif dan kemudian buka lokasi yang dipilih di editor.
Jika x
adalah sebuah modul, hanya definisi tingkat atas yang dicari. Untuk mencari semua definisi di submodul, berikan tanda :recursive
atau :r
.
@search
Jika tidak ada ekspresi yang diberikan, cari metode yang dikembalikan oleh eksekusi sebelumnya; yaitu, x
default ke ans
.
Contoh
@search show # all method definitions
@search @time # all macro definitions
@search Base . Enums # methods and macros in a module
@search REPL :r # search the module recursively
@search * ( :: Integer , :: Integer ) # methods with specified types
@search dot (π, ℯ) # methods with inferred types
Perhatikan bahwa @search
mengevaluasi ekspresi kompleks dengan .
dan []
seperti berikut dan cari nilai yang dikembalikan atau jenisnya:
@search Base . Multimedia . displays[ 2 ] . repl
@searchmethods
@searchmethods x
@searchmethods ::X
Telusuri secara interaktif melalui methodswith(typeof(x))
atau methodswith(X)
.
Contoh
@searchmethods 1 # search methods defined for integer
@searchmethods :: Int # search methods defined for a specified type
@searchhistory
@searchhistory
Cari riwayat secara interaktif. Secara interaktif mempersempit kode yang Anda cari dari riwayat REPL.
Batasan/fitur di IJulia : Di IJulia, @searchhistory
mencari riwayat terminal REPL, bukan riwayat sesi IJulia saat ini.
InteractiveCodeSearch.CONFIG
Antarmuka konfigurasi untuk InteractiveCodeSearch
.
Contoh
using InteractiveCodeSearch
InteractiveCodeSearch . CONFIG . interactive_matcher = ` fzf ... ` # default in terminal
InteractiveCodeSearch . CONFIG . interactive_matcher = ` peco `
InteractiveCodeSearch . CONFIG . interactive_matcher = ` percol `
InteractiveCodeSearch . CONFIG . interactive_matcher =
` rofi -dmenu -i -p "?" ` # use GUI matcher (default in non-terminal
# environment like IJulia)
InteractiveCodeSearch . CONFIG . interactive_matcher =
` rofi -dmenu -i -p "?" -fullscreen ` # bigger screen
InteractiveCodeSearch . CONFIG . open = edit # default
InteractiveCodeSearch . CONFIG . open = less # use Base.less to read code
InteractiveCodeSearch . CONFIG . auto_open = true # default
InteractiveCodeSearch . CONFIG . auto_open = false # open matcher even when there
# is only one candidate
InteractiveCodeSearch . CONFIG . trigger_key = ' ) ' # insert "@search" on ')' (default)
InteractiveCodeSearch . CONFIG . trigger_key = nothing # disable shortcut
Menggunakan InteractiveCodeSearch.jl secara default
Masukkan kode berikut di ~/.julia/config/startup.jl
(≥ Julia 0.7) atau ~/.juliarc.jl
(Julia 0.6):
using InteractiveCodeSearch
# InteractiveCodeSearch.CONFIG.interactive_matcher = ...