Dołączyłem do imprezy późno. Zgadzam się z IKashef, że istnieją inne opcje, które aktualnie wybrana odpowiedź. Odpowiedź Yaquba Ahmada uratowała mi życie. Nie musiałem pobierać Intellig IDE. Pobrałem wspomnianą wtyczkę CoffeeBytes z komentarza cking24343, zastosowałem konfigurację „null n void” i działałem dobrze w Luna. Musisz ponownie uruchomić po zastosowaniu konfiguracji
Maximus Decimus
3
zaczynają się //region [Description] i kończą na//endregion
Amir Ziarati
Odpowiedzi:
215
Nie ma takiego standardowego odpowiednika. Niektóre środowiska IDE - na przykład Intellij lub Eclipse - mogą się spasować w zależności od zaangażowanych typów kodu (konstruktory, import itp.), Ale nic podobnego #region.
W rzeczywistości można to osiągnąć. Jeśli przewiniesz ten post w dół, „Yaqub Ahmad” wyjaśni, jak uzyskać tę funkcjonalność. Również tutaj jest link ( kosiara87.blogspot.com/2011/12/… ), który pokazuje, jak dodać go do istniejącego środowiska zaćmienia ... niezwykle przydatne!
cking24343
14
Pewnie. Ale nie ma nic standardowego . Jest wykonywany w IDE, a nie w konstrukcji językowej (lub tekstowej)
Brian Agnew
2
@lKashef - więc jaki jest zatem standardowy odpowiednik? Wszystko, co podano poniżej, odnosi się do konkretnego IDE, prawda?
Brian Agnew
4
@BrianAgnew, OP nie wspomniał nic o standardach, po prostu chce mieć w swoim kodzie bloki regionów. Na przykład powiedziałeś „ale nie ma nic takiego jak #region”. w IDEA na przykład // region .. // endregion działa dokładnie tak jak #region. Po pierwsze, nie ma żadnego standardowego sposobu, aby to zrobić, ponieważ zależy to od samego IDE lub wtyczki. Programiści z tłem Microsoft zawsze widzą MS Visual Studio jako „The” IDE, ale w rzeczywistości jest to tylko jedna z opcji, a inne IDE może, ale nie musi, implementować taką funkcjonalność.
Mazen Elkashef
4
@BrianAgnew, prawie się poddałem, dopóki nie zobaczyłem odpowiedzi innych ludzi, które pomogły bardziej niż twoja. Poważnie, nie czujemy się tutaj zbyt ciężko. Wszyscy jesteśmy tutaj, aby uczyć się i dzielić naszą wiedzą, i stwierdzam, że twoja odpowiedź wprowadziła mnie w błąd, może była to dobra sytuacja w 2010 roku, ale nie dzisiaj. Mam nadzieję, że rozumiesz.
Mazen Elkashef
476
Jet Brains IDEA ma tę funkcję. Możesz użyć do tego skrótu klawiszowego (ctrl + alt + T). To tylko funkcja IDEA.
przechodził wszystkie odpowiedzi i domyślił się, ponieważ Android Studio jest oparty na IntelliJ, więc to musi być obsługiwane. Warto jednak to podkreślić!
seryna
5
bummi, wypróbowałem to w wersji 0.4.2 z pustą linią i nadal działa
sery
2
Tylko komentarz / rada (i w żadnym wypadku nie odpowiedź na twoje pytanie). Powszechnie uważa się, że należy unikać regionów, ponieważ pozwalają one ukryć złożoność klas zamiast pracować nad stylem kodowania. Zamiast wielkich klas, w których każda klasa odpowiada za wiele funkcji, zamiast tego pracuj nad podziałem kodu na mniejsze klasy. Z czasem twój kod będzie łatwiejszy do zarządzania. Przeczytaj więcej tutaj: blog.codinghorror.com/the-problem-with-code-folding
Daniel Saidi
5
@DanielSaidi oh, horror! :) facet w artykule „ Nic nie widzę! Muszę ręcznie rozwinąć te sekcje, aby przeglądać dowolny kod w tej klasie. ” ... dlatego, że jest zbyt leniwy, aby nacisnąć klawisz (to by rozwinąć wszystkie sekcje w pliku), funkcja nie może być używana - jest to super cudowna funkcja. W tej chwili używam tego do ukrywania metod jeden po drugim. Metody, które sprawdziłem, są bezpieczne w klasie, w której pracuję, to naprawdę pomaga utrzymać porządek. Pewnie od czasu do czasu zastanawiałem się, gdzie coś takiego jest Myślałem, że tam jest, ale to niewielka cena do zapłacenia ...
ycomp 18.10.15
4
@DanielSaidi Nie chodzi o ukrywanie złożoności, ale ukrywanie przyziemnego kodu, takiego jak deklaracje zmiennych, metody pobierające, kod inicjujący i tak dalej. Należy również pamiętać, że NIE wymaga się #regions, aby zwinąć „złożony kod” znaleziony w funkcjach i klasach. Wołowina z programistami niepoprawnie używającymi narzędzia nie oznacza „narzędzie jest złe”.
user1567453
96
Brak odpowiednika w języku ... Na podstawie IDE ...
Mimo że nie jest to składanie specyficzne dla języka, ale pomogło mi w NetBeans. Dokładnie to, co chciałem osiągnąć. Po prostu chcę, aby mój kod był dla mnie bardziej przydatny i zorganizowany.
Indygo
Czy jest jakiś skrót, który może automatycznie wypełnić tę linię?
@JadChahine: OP zapytał o Eclipse, ale zgadza się, że działa to dobrze dla NetBeans. Składnia jest nieco niezdarna, ale kopiowanie i wklejanie ułatwia.
Skopiuj wklej zawartość wtyczki i folderu funkcji do tego samego nazwanego folderu w katalogu instalacyjnym Eclipse
Uruchom ponownie zaćmienie
Nawigować Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold
Utwórz nowy region, jak pokazano:
Uruchom ponownie środowisko Eclipse.
Wypróbuj, jeśli składanie działa z komentarzami poprzedzonymi określonymi identyfikatorami początkowymi i końcowymi
Możesz pobrać archiwum i znaleźć kroki na tym blogu .
nie działa dla mnie na eclipse neon: kopiowanie i wklejanie nic nie zrobiło: jedyne co się zmieniło to w sklepie >> zainstalowane wtyczki >> aktualizacja. Zaktualizowałem wtyczkę CoffeeScript, ale nie dostałem opcji „Wybierz składanie do użycia” w java >> edytor >> składanie
Angelo Oparah
Działało w Eclipse Oxygen, jednak musisz ponownie uruchomić zaćmienie. Ikona, która była mi wyświetlana, była czerwoną ikoną, więc zmieniłem konfigurację, Okno → Preferencje → Java → Edytor → Folding, kliknij zakładkę Zaawansowane i zmień zestaw ikon na Nowoczesny
W Android Studio przynajmniej nie można złożyć części bloku. Jeśli specyfikacja foldowania rozpoczyna się poza blokiem i kończy w bloku, nie zostanie aktywowana.
Prof Von Lemongargle
30
najszybszy sposób w Android Studio(lub IntelliJ IDEA)
Najbardziej publikuje się to, że w JAVA jest to funkcja IDE.
WhyNotHugo
1
Widzę 2 najpopularniejsze odpowiedzi, które mówią, że nie ma takiej funkcji językowej. -1.
Mohayemin,
23
W języku C # jest to częściowo IDE, a częściowo język. Język obsługuje dyrektywy preprocesora, ale preprocesor po prostu je ignoruje (w ten sam sposób procesor ignoruje komentarze). IDE (Visual Studio) używa ich do składania kodu.
ADTC
Java nie określiła składania kodu tylko IDE (Netbeans), Netbeans ma więcej specjalnych komentarzy, takich jak „TODO” i więcej. Są bardzo przydatne do śledzenia postępów w procesie rozwoju projektu SW
Pini Cheyni
17
Przybyłem z języka C # do Javy i miałem ten sam problem, a najlepsza i dokładna alternatywa dla regionu jest podobna do poniższej (praca w Android Studio, nie wiem o intelliJ):
Działa z Android Studio i IntelliJ IDEA (oba są wykonane z tej samej bazy
kodowej
Skrót
12
Jeśli ktoś jest zainteresowany, w Eclipse możesz zwinąć wszystkie swoje metody itp. Za jednym razem, po prostu kliknij prawym przyciskiem myszy, gdy normalnie wstawisz punkt przerwania, kliknij „Składanie”> „Zwiń wszystko”. Wie, że nie jest to odpowiedź na pytanie, ale stanowi jedynie alternatywę dla szybkiego zwijania kodu.
Możesz także włączyć automatyczne zwijanie wszystkiego w Eclipse podczas otwierania pliku kodu źródłowego. Preferencje> Java> Edytor> Składanie> „Wstępnie złóż te elementy” (zaznacz wszystko na liście). Uważam, że wygodnie jest skupić się tylko na tym, czego potrzebuję, szczególnie w długich plikach źródłowych.
ADTC
@ ADTC - Dzięki - tyle razy setki razy robiłem to ręcznie za każdym razem, gdy otwieram plik - nigdy więcej !!
ToolmakerSteve
@ToolmakerSteve Jeśli możesz zrobić cokolwiek powtarzalnego ręcznie na komputerze, musi istnieć sposób na zautomatyzowanie go. = D
ADTC
8
#region// code#endregion
Naprawdę daje ci tylko korzyści w IDE. W Javie nie ma ustalonego standardu w IDE, więc tak naprawdę nie ma standardu równoległego #region.
Cóż, jeśli istnieje standard region, możemy być pewni, że IDE Java będzie obsługiwać, prawda?
Pacerier,
@Pacerier, jeśli obsługują ten standard, tak. Myślę, że #region jest bardziej funkcją IDE niż standardem. Teoretycznie środowiska IDE Java mogą implementować to zachowanie i uczynić go de facto standardem
Właściwie John, #oznacza, że jest to dyrektywa preprocesorowa, co w zasadzie oznacza, że mówi IDE, co ma robić.
W przypadku użycia #regioniw #endregionkodzie NIE ma znaczenia, czy kod końcowy jest obecny, czy nie. Czy naprawdę można nazwać go elementem języka, jeśli jego użycie niczego nie zmienia?
Poza tym java nie ma dyrektyw preprocesora, co oznacza, że opcja składania kodu jest definiowana na podstawie idei, w netbeans na przykład za pomocą instrukcji // <code-fold>
czy naprawdę można nazwać go elementem języka, jeśli jego użycie niczego nie zmienia? - co powiesz na komentarze?
epeleg
2
Słyszałem wcześniej argument, że nie jest to funkcja języka. I to pytanie „Czy naprawdę można nazwać go elementem językowym, jeśli jego użycie niczego nie zmienia?” jest niedorzeczny. Refaktoryzacja przez długi czas sprawia, że kod jest łatwiejszy do odczytania dla ludzi i nie robi nic (mam nadzieję) wpływając na funkcję kodu.
Menefee
1
Na komputerach Mac i Android Studio wykonaj następującą sekwencję:
To jest bezużyteczne. Nie działa wewnątrz metody, a ponadto ZŁAMUJE KOD! (Zmienne prywatne będą narzekać, że chcą być ostateczne. Zmienna bez definicji zakresu nie będzie dostępna poza wewnętrznymi nawiasami!)
ADTC
1
Nie podoba mi się ta metoda, dodaje zbyt wiele nawiasów klamrowych. Może to prowadzić do mylącego kodu :(
Broken_Window
-3
Wystarczy zainstalować i włączyć wtyczkę Coffee-Bytes (Eclipse)
Jest to nie tylko wspomniane we wcześniejszej odpowiedzi , ale nawet nie podałeś żadnych użytecznych informacji na ten temat.
Xynariz,
-12
Istnieje kilka opcji, aby osiągnąć to samo. Postępuj zgodnie z poniższymi punktami.
1) Otwórz Eksploratora makr:
2) Utwórz nowe makro:
3) Nazwij go „OutlineRegions” (lub cokolwiek chcesz)
4) Kliknij prawym przyciskiem myszy opcję „OutlineRegions” (wyświetlana w Eksploratorze makr), wybierz opcję „Edytuj” i wklej do niej następujący kod VB:
ImportsSystemImportsEnvDTEImportsEnvDTE80ImportsEnvDTE90ImportsEnvDTE90aImportsEnvDTE100ImportsSystem.DiagnosticsImportsSystem.CollectionsPublicModuleOutlineRegionsSubOutlineRegions()Dim selection AsEnvDTE.TextSelection= DTE.ActiveDocument.SelectionConst REGION_START AsString="//#region"Const REGION_END AsString="//#endregion"
selection.SelectAll()Dim text AsString= selection.Text
selection.StartOfDocument(True)Dim startIndex AsIntegerDim endIndex AsIntegerDim lastIndex AsInteger=0Dim startRegions AsStack=NewStack()Do
startIndex = text.IndexOf(REGION_START, lastIndex)
endIndex = text.IndexOf(REGION_END, lastIndex)If startIndex =-1AndAlso endIndex =-1ThenExitDoEndIfIf startIndex <>-1AndAlso startIndex < endIndex Then
startRegions.Push(startIndex)
lastIndex = startIndex +1Else' Outline region ...
selection.MoveToLineAndOffset(CalcLineNumber(text, CInt(startRegions.Pop())), 1)
selection.MoveToLineAndOffset(CalcLineNumber(text, endIndex) + 1, 1, True)
selection.OutlineSection()
lastIndex = endIndex + 1
End If
Loop
selection.StartOfDocument()
End Sub
Private Function CalcLineNumber(ByVal text As String, ByVal index As Integer)
Dim lineNumber As Integer = 1
Dim i As Integer = 0
While i < index
If text.Chars(i) = vbCr Then
lineNumber += 1
i += 1
End If
i += 1
End While
Return lineNumber
End Function
End Module
5) Zapisz makro i zamknij edytor.
6) Teraz przypiszmy skrót do makra. Przejdź do Narzędzia-> Opcje-> Środowisko-> Klawiatura i wyszukaj swoje makro w polu tekstowym „pokaż polecenia zawierające” (wpisz: Makro w polu tekstowym, zasugeruje nazwę makra, wybierz swoją).
7) teraz w polu tekstowym pod „Naciśnij klawisze skrótu” możesz wprowadzić żądany skrót. Używam Ctrl + M + N.
//region [Description]
i kończą na//endregion
Odpowiedzi:
Nie ma takiego standardowego odpowiednika. Niektóre środowiska IDE - na przykład Intellij lub Eclipse - mogą się spasować w zależności od zaangażowanych typów kodu (konstruktory, import itp.), Ale nic podobnego
#region
.źródło
Jet Brains IDEA ma tę funkcję. Możesz użyć do tego skrótu klawiszowego (ctrl + alt + T). To tylko funkcja IDEA.
Regiony tam wyglądają następująco:
źródło
W Android Studio spróbuj tego:
Ostrożnie: brak pustej linii po // regionie ...
I dostaniesz:
źródło
Brak odpowiednika w języku ... Na podstawie IDE ...
Na przykład w fasolkach sieciowych:
NetBeans / Creator obsługuje tę składnię:
http://forums.java.net/jive/thread.jspa?threadID=1311
źródło
W przypadku Eclipse IDE wtyczka Coffee-Bytes może to zrobić, link do pobrania jest tutaj .
EDYTOWAĆ:
Najnowsze informacje o Coffee-Bytes są tutaj .
źródło
Niestandardową funkcję składania kodu można dodać do środowiska Eclipse za pomocą wtyczki do składania kodu CoffeeScript.
Jest to testowane pod kątem współpracy z zaćmieniem Luna i Juno. Oto kroki
Pobierz wtyczkę stąd
Wyodrębnij zawartość archiwum
Nawigować
Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold
Utwórz nowy region, jak pokazano:
Uruchom ponownie środowisko Eclipse.
Wypróbuj, jeśli składanie działa z komentarzami poprzedzonymi określonymi identyfikatorami początkowymi i końcowymi
Możesz pobrać archiwum i znaleźć kroki na tym blogu .
źródło
To bardziej funkcja IDE niż funkcja języka. Netbeans pozwala zdefiniować własne definicje składania przy użyciu następującej definicji:
Jak wspomniano w artykule, mogą to być również obsługiwane przez innych redaktorów, ale nie ma żadnych gwarancji.
źródło
highlight the code
chcesz go otoczyćctrl
+alt
+t
c
==> następnie wprowadź opisźródło
AndroidStudio
regionUtwórz region
Najpierw znajdź (i w razie potrzeby zdefiniuj skrót) dla
Surround With
menuNastępnie wybierz kod, naciśnij
Ctrl+Alt+Semicolon
-> wybierzregion..endregion...
Idź do regionu
Najpierw znajdź
Custom Folding
skrótPo drugie, z dowolnego miejsca w kodzie naciśnij
Ctrl+Alt+Period('>' on keyboard)
źródło
W przeciwieństwie do tego, co większość publikuje, NIE jest to IDE. To jest kwestia języka. #Region to instrukcja w języku C #.
źródło
Przybyłem z języka C # do Javy i miałem ten sam problem, a najlepsza i dokładna alternatywa dla regionu jest podobna do poniższej (praca w Android Studio, nie wiem o intelliJ):
skrót jest jak poniżej:
1- wybierz kod
2- naciśnij
ctrl
+alt
+t
3- naciśnij
c
i napisz swój opisźródło
Najlepszym sposobem
Wskazówka: wpisz „;” na końcu „regionu”
źródło
Jeśli ktoś jest zainteresowany, w Eclipse możesz zwinąć wszystkie swoje metody itp. Za jednym razem, po prostu kliknij prawym przyciskiem myszy, gdy normalnie wstawisz punkt przerwania, kliknij „Składanie”> „Zwiń wszystko”. Wie, że nie jest to odpowiedź na pytanie, ale stanowi jedynie alternatywę dla szybkiego zwijania kodu.
źródło
Naprawdę daje ci tylko korzyści w IDE. W Javie nie ma ustalonego standardu w IDE, więc tak naprawdę nie ma standardu równoległego
#region
.źródło
region
, możemy być pewni, że IDE Java będzie obsługiwać, prawda?Oto przykład:
100% działa w Android Studio
źródło
Zazwyczaj potrzebuję tego do skomentowanego kodu, więc używam nawiasów klamrowych na początku i na końcu.
Może być używany do fragmentów kodu, ale może powodować problemy w niektórych kodach, ponieważ zmienia zakres zmiennej.
źródło
Właściwie John,
#
oznacza, że jest to dyrektywa preprocesorowa, co w zasadzie oznacza, że mówi IDE, co ma robić.W przypadku użycia
#region
iw#endregion
kodzie NIE ma znaczenia, czy kod końcowy jest obecny, czy nie. Czy naprawdę można nazwać go elementem języka, jeśli jego użycie niczego nie zmienia?Poza tym java nie ma dyrektyw preprocesora, co oznacza, że opcja składania kodu jest definiowana na podstawie idei, w netbeans na przykład za pomocą instrukcji // <code-fold>
źródło
Na komputerach Mac i Android Studio wykonaj następującą sekwencję:
<editor-fold>
Możesz także wybrać inne opcje:
źródło
W środowisku Eclipse można zwinąć nawiasy zawijające blok regionu zmiennego. Najbliższe jest zrobienie czegoś takiego:
źródło
Wystarczy zainstalować i włączyć wtyczkę Coffee-Bytes (Eclipse)
źródło
Istnieje kilka opcji, aby osiągnąć to samo. Postępuj zgodnie z poniższymi punktami.
1) Otwórz Eksploratora makr:
2) Utwórz nowe makro:
3) Nazwij go „OutlineRegions” (lub cokolwiek chcesz)
4) Kliknij prawym przyciskiem myszy opcję „OutlineRegions” (wyświetlana w Eksploratorze makr), wybierz opcję „Edytuj” i wklej do niej następujący kod VB:
5) Zapisz makro i zamknij edytor.
6) Teraz przypiszmy skrót do makra. Przejdź do Narzędzia-> Opcje-> Środowisko-> Klawiatura i wyszukaj swoje makro w polu tekstowym „pokaż polecenia zawierające” (wpisz: Makro w polu tekstowym, zasugeruje nazwę makra, wybierz swoją).
7) teraz w polu tekstowym pod „Naciśnij klawisze skrótu” możesz wprowadzić żądany skrót. Używam Ctrl + M + N.
Posługiwać się:
8) Naciśnij zapisany klawisz skrótu
Zobacz wynik poniżej:
źródło
This code seems to be for Visual Basic.NET
co sugeruje, że IDE jestVisual Studio
.#region
i#endregion