From f93b80ce3edf76f5c4541997060845d3c1150563 Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Fri, 19 Jan 2024 17:54:03 +0300 Subject: [PATCH 1/2] Add a new section to the custom code doc. --- en/abp-suite/customizing-the-generated-code.md | 10 ++++++++++ en/images/file-nesting.png | Bin 0 -> 8719 bytes 2 files changed, 10 insertions(+) create mode 100644 en/images/file-nesting.png diff --git a/en/abp-suite/customizing-the-generated-code.md b/en/abp-suite/customizing-the-generated-code.md index dbed4ddc..bde258a2 100644 --- a/en/abp-suite/customizing-the-generated-code.md +++ b/en/abp-suite/customizing-the-generated-code.md @@ -8,6 +8,16 @@ ABP Suite allows you to customize the generated code blocks and preserve your cu To enable custom code support, you should check the _Customizable code_ option in the **CRUD Page Generation** page (it's selected by default). When you enable the custom code support, you will see some hook points in your application on both the backend and UI side. +## Showing/Hiding Custom Code Files in the Visual Studio + +When you enable the custom code support, the `.filenesting.json` file will be created in the root project directory to hide the custom code files (files with `.Extended.*` postfix) in Visual Studio. Therefore, to be able to see the custom code files you should click the expand icon for the related file as can be seen from the following figure: + +![file-nesting](../images/file-nesting.png) + +ABP Suite creates the `.filenesting.json` file to provide you with a more organized project structure. However, if you want to see all of the files without needing to click the collapse icon for the related file, then you can safely delete the `.filenesting.json` file. + +> **Note**: ABP Suite also creates a `Directory.Build.props` file in the root project directory to enable dynamic file nesting. If you are considering deleting the `.filenesting.json` file, then you are free to delete the `Directory.Build.props` file as well. + ## Backend - C# Side Customizations On the C# Side, you'll be seeing some abstract classes and classes that derive from them (for entities, application services, interfaces, domain services, and so on ...) according to the template that you have created. diff --git a/en/images/file-nesting.png b/en/images/file-nesting.png new file mode 100644 index 0000000000000000000000000000000000000000..abf63f8d72424b814a3c561db361c665f9360a87 GIT binary patch literal 8719 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 S9N?cg03|u~$EC97um20`PsX|c literal 0 HcmV?d00001 From 478ca831276c83db8d9e6a8d143d282978ad692c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 19 Jan 2024 14:57:06 +0000 Subject: [PATCH 2/2] Optimised images with calibre/image-actions --- en/images/file-nesting.png | Bin 8719 -> 6099 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/en/images/file-nesting.png b/en/images/file-nesting.png index abf63f8d72424b814a3c561db361c665f9360a87..a1f688c5dfa50a2c2115c24ae73e0b8ef64559ab 100644 GIT binary patch literal 6099 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 S9N?cg03|u~$EC97um20`PsX|c