package Ġnl . h ann ah sten . tex ify idea . modules Ċ Ċ import Ġcom . intellij . ide . util . project Wizard . Abstract New Project Step Ċ import Ġcom . intellij . ide . util . project Wizard . Custom Step Project Generator Ċ import Ġcom . intellij . ide . util . project Wizard . Project Settings Step Base Ċ import Ġcom . intellij . openapi . application . Application Manager Ċ import Ġcom . intellij . openapi . module . Module Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . project . root Manager Ċ import Ġcom . intellij . openapi . roots . Mod ifiable Models Provider Ċ import Ġcom . intellij . openapi . roots . Mod ifiable Root Model Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . platform . Directory Project Generator Ċ import Ġcom . intellij . platform . Directory Project Generator Base Ċ import Ġcom . intellij . platform . Project Generator Peer Ċ import Ġnl . h ann ah sten . tex ify idea . Tex ify Icons Ċ import Ġnl . h ann ah sten . tex ify idea . settings . Tex ify Settings Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠThis Ġclass Ġregisters Ġthe ĠLaTeX Ġmodule Ġtype Ġespecially Ġfor Ġthe Ġcreation Ġof Ġa Ġnew Ġproject Ġin Ġnon - Int elli J ĠIDE s . Ċ Ġ* ĠThe Ġcreation Ġof Ġa Ġnew Ġproject Ġin ĠIntelliJ Ġis Ġhandled Ġby Ġ[ Lat ex Module Type ]. Ċ Ġ* Ċ Ġ* ĠAt Ġthe Ġmoment Ġof Ġwriting Ġthere Ġseems Ġto Ġbe Ġno Ġpublic Ġofficial Ġdocumentation Ġabout Ġwhat Ġneeds Ġto Ġbe Ġdone Ġto Ġregister Ġsuch Ġa Ġmodule Ġtype , Ġbut Ġsome Ġhelpful Ġcomments Ġcan Ġbe Ġfound Ġat Ġhttps :// stackoverflow . com / a / 4 9 7 1 3 5 5 1 / 4 1 2 6 8 4 3 Ċ Ġ* Ċ Ġ* Ġ@ author ĠThomas ĠSch out en Ċ Ġ*/ Ċ class ĠLat ex Project Generator Ġ: ĊĠĠĠ ĠDirectory Project Generator Base < Tex ify Settings >(), ĊĠĠĠ ĠCustom Step Project Generator < Tex ify Settings > Ġ{ ĊĊĠĠĠ Ġ/** ĠKeep Ġa Ġreference Ġto Ġthe Ġpeer Ġto Ġget Ġthe Ġvalue Ġof Ġthe Ġsettings Ġchosen Ġby Ġthe Ġuser Ġduring Ġproject Ġcreation . Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġpeer : ĠLat ex Project Generator Peer ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Step ( ĊĠĠĠĠĠĠĠ Ġproject Generator : ĠDirectory Project Generator < Tex ify Settings >, ĊĠĠĠĠĠĠĠ Ġcallback : ĠAbstract New Project Step . Abstract Callback < Tex ify Settings > ĊĠĠĠ Ġ) Ġ= ĠProject Settings Step Base ( project Generator , ĠAbstract New Project Step . Abstract Callback < Tex ify Settings >()) ĊĊĠĠĠ Ġoverride Ġfun ĠgetName () Ġ= Ġ" La TeX " ĊĊĠĠĠ Ġoverride Ġfun ĠgetDescription () Ġ= Ġ" La TeX " ĊĊĠĠĠ Ġoverride Ġfun Ġget Logo () Ġ= ĠTex ify Icons . LAT EX _ MODULE ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Peer (): ĠProject Generator Peer < Tex ify Settings > Ġ= ĠLat ex Project Generator Peer (). also Ġ{ Ġpeer Ġ= Ġit Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Project ( project : ĠProject , Ġbase Dir : ĠVirtual File , Ġsettings : ĠTex ify Settings , Ġmodule : ĠModule ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġbehaviour Ġwas Ġinspired Ġby Ġthe ĠJulia Ġplugin , Ġsee ĊĠĠĠĠĠĠĠ Ġ// Ġhttps :// github . com / Julia Editor Support / julia - intellij / blob / master / src / org / ice 1 0 0 0 / julia / lang / module / julia - projects . kt ĊĠĠĠĠĠĠĠ Ġval Ġmod ifiable Model : ĠMod ifiable Root Model Ġ= ĠMod ifiable Models Provider . SERVICE . getInstance (). getModule Mod ifiable Model ( module ) ĊĊĠĠĠĠĠĠĠ Ġval Ġroot Model Ġ= Ġmodule . root Manager . modifiable Model ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreate Ġa Ġdirectory Ġin Ġa Ġbase Ġdirectory Ġunless Ġit Ġalready Ġexists . Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġfind OrCreate ( base Dir : ĠVirtual File , Ġdir : ĠString , Ġmodule : ĠModule ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Dir . find Child ( dir ) Ġ?: Ġbase Dir . create Child Directory ( module , Ġdir ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġcan Ġonly Ġwrite Ġto Ġdisk Ġin Ġa Ġrun Write Action ĊĠĠĠĠĠĠĠ ĠApplication Manager . getApplication (). run Write Action Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġsource , Ġaux il Ġand Ġoutput Ġdirectories ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot Model . content Entries . first OrNull ()?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Source Folder ( find OrCreate ( base Dir , Ġ" src ", Ġmodule ), Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Exclude Folder ( find OrCreate ( base Dir , Ġ" aux il ", Ġmodule )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Exclude Folder ( find OrCreate ( base Dir , Ġ" out ", Ġmodule )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Bib tex Enabled : ĠBoolean Ġ= Ġpeer ?. bib tex Enabled ?. isEnabled Ġ?: Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġa Ġdefault ĠLaTeX Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource Path Ġ= Ġbase Dir . path Ġ+ ĠFile . separator Ġ+ Ġ" src " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault File Creator ( project , Ġsource Path ). add Main File ( is Bib tex Enabled ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Bib tex Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDefault File Creator ( project , Ġsource Path ). add Bib File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot Model . commit () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠMod ifiable Models Provider . SERVICE . getInstance (). commit Module Mod ifiable Model ( modifiable Model ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }