On 12/11/13 10:37, Ankit Shah wrote: > I've started using LyX for writing my final Term Paper.
oh great! you're already a user then! > I would love > to work on Advance find and replace as you suggested. I found some > bug tickets interesting regarding the same. I'm participating in such > collaborative development for the first time so can anyone please > brief me as to how to start making changes have a glance at the LyX wiki developers pages http://wiki.lyx.org/Devel out of which a quick glance at these diagrams may be helpful to have a visual clue of the data structures used within LyX http://wiki.lyx.org/Devel/Diagrams My quick summary on LyX internals: src/support/*.{h,cpp} support functionality, such as files, filename mangling, OS abstraction, string character encoding/decoding, file streams, etc... src/*.{h,cpp} core "model" files, in the model-view pattern sense, namely all functionality related to document, text, paragraphs, maths handling, regardless of how it is represented on screen src/frontends/qt4/*.{h,cpp} core "view" files, in the model-view pattern sense, namely all functionality related to visual representation on-screen, implemented using Qt (don't be fooled by the plural of frontends, once upon a time there used to be an alternate front-end, now it's everything only Qt-based) src/frontends/qt4/ui/*.ui Qt XML-based UI files describing most of the dialogs and panels; these can be edited using designer-qt4, a WYSIWYG editor for this kind of files src/frontends/*.{h,cpp} still "view" files, but which once upon a time pretended to be independent of the specifically chosen front-end. lib/ui/stdmenus.inc Key file with most of the LyX menu items lib/bind/cua.bind Key file with most of the LyX short-cut key bindings .... So, users interacting with the LyX GUI generate events captured in the src/../qt4/* files, which are then dispatched to appropriate core model elements in src/*.{h,cpp} through a mechanism called "LFUN". Specifically, for Advanced Find & Replace, all GUI stuff is in src/frontends/qt4/FindAndReplace.cpp whilst all the actual searching throughout the document happens in src/lyxfind.cpp More on a concrete and practical side, 1st thing you have to know is that LyX has a powerful debugging feature. Just compile it with git clone ..... cd lyx ./autogen.sh ./configure --enable-debug make -j4 then, launch LyX from the command-line as: ./src/lyx -dbg find the "find" keyword enables all debugging lines that read in the *.cpp code as: LYXERR(Debug::FIND, "..."); You can type ./src/lyx -dbg to get a list of all components/features of LyX that can be independently enabled while debugging, namely ./src/lyx -dbg find,workarea would print out all debugging messages related to find and replace, as well as workarea-related events. So, launching with "-dbg find" and then activating Advanced Find & Replace (menu item, or C-S-f), then searching for some basic text, should bring you plenty of output on the terminal. You can search for these strings in ..../qt4/FindAndReplace.cpp, as well as in src/lyxfind.cpp, to understand the flow of the code. > and submit bug patches. guess it doesn't really matter at this stage. Once you get to a point in which you want to share some patch, then you can send the patch by e-mail at the beginning where it's small, and/or also attach the patch to the ticket in the on-line trac system. Then we see whether we need to switch to git & friends, but that's surely for later... > I'll trying to work on this minor bug > #8848 <http://www.lyx.org/trac/ticket/8884>. So, first thing here would be: replicate the problem, namely I could NOT replicate the problem on my own laptop, perhaps it doesn't show up on mine (used to be 12.10, then 13.04 now I run 13.10), or perhaps I didn't understand what the reporter said, etc... Thanks, T.