Symbol list for navigation

Hello,

I having a situation, that may be isn’t a Library question, so free to delete this post if isn’t appropriate.

In my journey to understand how OpenFHE is implemented I’m trying to navigate the library with one of the examples and using go to definition of my text editor (nvim, that use LSP).
The library its installed with make install, and the example (that is in another directory) with a makefile that i made (i needed to figure out how to compile it without cmake).

I never before had to use a big library so i never had the need to navigate outside my project.
For now i use bear (i think that is intended to clangd and no for g++) to make a compile_commands.json file, and this allows me to navigate to the definition of a function of OpenFHE, but then I cant keep going.

Here is my makefile, maybe its usefull for someone.

OPEN_DIR = /usr/local/include/openfhe/
INCDIR= -Ithird-party/include \
		-I$(OPEN_DIR) -I$(OPEN_DIR)pke \
		-I$(OPEN_DIR)core \

LIBS = -lOPENFHEcore -lOPENFHEpke -lOPENFHEbinfhe -lstdc++ -Wl,-R/usr/local/lib

OPEN_FLAGS = -DMATHBACKEND=4 -DOPENFHE_VERSION=0.9.5

CFLAGS = -Wall -Werror -O3 -Wno-parentheses -Wno-unknown-pragmas \
		 -gdwarf -O2 -std=gnu++11 -fno-omit-frame-pointer
DEPFLAGS = -MMD -MT -MF

TARGET = ckks-simple

all : $(TARGET)

$(TARGET):
	$(CXX)  $(INCDIR) $(LIBS) $(OPEN_FLAGS) $(CFLAGS)  $(DEPFLAGS) $@.cpp -o $@
1 Like

Hi there!

Yeah, unfortunately, this sort of contribution might be so far and few between that I don’t think it’s productive to have a new topic. I did add a “tips-and-tricks” tag so hopefully that helps people find it. If there are enough of these posts I can rename the topic.

Thank you for your contribution!

@mmazz the best way to study OpenFHE is to walk through the codebase step by step. Build OpenFHE in Debug mode and use your favourite debugger (gdb for example) to debug the example code of your interest and you will be able to identify the functions called to perform each task. There are some IDEs (eclipse CDT for example) that allow you to add bookmarks in the codebase, which could be useful to navigate through the codebase.

@mmazz if you just want to jump to function definitions in OpenFHE, you could use Visual Studio Code or Eclipse (already mentioned in this thread). Both of them are free and available for different platforms including macOS (see Running Visual Studio Code on macOS). They work directly with the library code and don’t require to build anything.

Thanks to everyone for your replies!!

@Caesar, I try that with my nvim configuration and work great. I already use it for see how the encoding is implemented in CKKS and It will be a more difficult task than I thought.

@dsuponitskiy-duality, i saw that in the documentation its explain how to setup both so i will give them a try.