anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / editors / geany / default.nix
blob8268c7c867897712088d27b605cc8f1b7c60a223
1 { lib, stdenv
2 , fetchurl
3 , gtk3
4 , which
5 , pkg-config
6 , intltool
7 , file
8 , libintl
9 , hicolor-icon-theme
10 , python3
11 , wrapGAppsHook3
14 stdenv.mkDerivation (finalAttrs: {
15   pname = "geany";
16   version = "2.0";
18   outputs = [ "out" "dev" "doc" "man" ];
20   src = fetchurl {
21     url = "https://download.geany.org/geany-${finalAttrs.version}.tar.bz2";
22     hash = "sha256-VltM0vAxHB46Fn7HHEoy26ZC4P5VSuW7a4F3t6dMzJI=";
23   };
25   patches = [
26     # The test runs into UB in headless environments and crashes at least on headless Darwin.
27     # Remove if https://github.com/geany/geany/pull/3676 is merged (or the issue fixed otherwise).
28     ./disable-test-sidebar.patch
29   ];
31   nativeBuildInputs = [
32     pkg-config
33     intltool
34     libintl
35     which
36     file
37     hicolor-icon-theme
38     python3
39     wrapGAppsHook3
40   ];
42   buildInputs = [
43     gtk3
44   ];
46   preCheck = ''
47     patchShebangs --build tests/ctags/runner.sh
48     patchShebangs --build scripts
49   '';
51   doCheck = true;
53   enableParallelBuilding = true;
55   meta = with lib; {
56     description = "Small and lightweight IDE";
57     longDescription = ''
58       Geany is a small and lightweight Integrated Development Environment.
59       It was developed to provide a small and fast IDE, which has only a few dependencies from other packages.
60       Another goal was to be as independent as possible from a special Desktop Environment like KDE or GNOME.
61       Geany only requires the GTK runtime libraries.
62       Some basic features of Geany:
63       - Syntax highlighting
64       - Code folding
65       - Symbol name auto-completion
66       - Construct completion/snippets
67       - Auto-closing of XML and HTML tags
68       - Call tips
69       - Many supported filetypes including C, Java, PHP, HTML, Python, Perl, Pascal (full list)
70       - Symbol lists
71       - Code navigation
72       - Build system to compile and execute your code
73       - Simple project management
74       - Plugin interface
75     '';
76     homepage = "https://www.geany.org/";
77     license = licenses.gpl2Plus;
78     maintainers = with maintainers; [ frlan ];
79     platforms = platforms.all;
80     mainProgram = "geany";
81   };