Sioyek is a cross-platform PDF viewer optimized for reading research papers and technical books. Built with Qt, OpenGL, and MuPDF, it provides a rich set of features including multi-threaded rendering, annotation management (highlights, bookmarks, portals, freehand drawings), SyncTeX integration for LaTeX forward/inverse search, fuzzy text search, and a customizable command-driven interface. The architecture follows a modular design with a central MainWidget orchestrating UI state, a Document model for PDF handling, a PdfRenderer for threaded rendering, and a DatabaseManager for persistent annotation storage. The application supports both desktop and touch-optimized interfaces, with platform-specific code for Windows, macOS, Linux, and Android. While primarily an application, Sioyek incorporates data-oriented features such as SQLite-based annotation persistence, checksum-based document identification, and integration with external research tools (Google Scholar, arXiv). The repository also includes scripts for paper downloading, text-to-speech, and embedding annotations, as well as precomputed embedding data files (embedding.npy, linear.npy) likely used for text summarization or search enhancement. The codebase demonstrates strong engineering practices with reusable components like a fuzzy matching library (fzf), a SyncTeX parser, a type-safe configuration system, and a set of QML touch UI widgets. However, it also exhibits some technical debt in the form of global state, large monolithic files (main_widget.h), and platform-specific conditionals scattered throughout.
Vim-R is a Vim plugin that transforms Vim into a full-featured integrated development environment for the R language. It provides interactive R console integration (via built-in terminal or external tmux), omni-completion for R objects and function arguments, an object browser, PDF preview with SyncTeX forward/backward search, and support for R Markdown, Rnoweb, and Quarto documents. The plugin communicates with R through a custom TCP/IP server (vimrserver) written in C and a companion R package (vimcom). While the plugin is superseded by R.nvim for Neovim users, the codebase demonstrates high craftsmanship in its multi-language architecture (VimL, C, R, Python) and remains functional for Vim users. It is not a data analysis tool but an editor enhancement for R development.