Generowanie XML'a

S9
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:31
0

Witam, potrzebuję pomocy z wygenerowaniem xml'a z bazy danych w mssql, mam podany jak ma wyglądać ten plik:

Kopiuj
<StatystykaWizyt od="data" do="data">
  <Pacjent imie="imie" nazwisko="nazwisko">
    <Wizyta specjalnosc="specjalnosc"> liczba </Wizyta>
	....
  </Pacjent>
  ....  
</StatystykaWizyt>

chodzi mi o to aby w węźle wizyta ta liczba była właśnie tak jak wyżej
mój kod:

Kopiuj
declare @od date
declare @do date
set @od = '2016-11-05'
set @do = '2016-11-30'
--drop table #nowa2
create table #nowa2 (od date, do date)
insert into #nowa2 values(@od,@do)

select od, do,
	(select 
	P.Imie
	,P.Nazwisko
	,
		(																	
  		select
  		S.Nazwa as Specjalnosc, 
		Count (W.IdPacjenta) as liczba
  		from
  		((((Specjalizacje S join Kwalifikacje K on S.Id=K.IdSpecjalizacji)
		join Lekarze L on L.Id=K.IdLekarza) join Terminy T on T.IdLekarza=L.Id)
		join Wizyty W on T.Id=W.IdTerminu)
		
  		where W.IdPacjenta=P.Id
		group by S.Nazwa
   		for xml raw ('Wizyta'), type
		) 
	from 
	Pacjenci P
	for xml  raw('Pacjent'), type
	)
	from #nowa2
	for xml raw ('StatystykaWizyt')
edytowany 1x, ostatnio: somekind
EL
tagi tagi TAAAGI !
somekind
Umieszczaj kod w znacznikach.
PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 3 godziny
  • Postów:3870
1

Dla danych:

Kopiuj
CREATE TABLE Pacjenci
    ([id] int, [nazwisko] varchar(8), [imie] varchar(5));
CREATE TABLE spec
    ([specjalnosc] varchar(10), [liczba] int, [idpacjenta] int);
    
INSERT INTO Pacjenci([id], [nazwisko], [imie])
VALUES
    (1, 'Kowalski', 'Jan'),
    (2, 'Nowak', 'Marek');
INSERT INTO spec ([specjalnosc], [liczba], [idpacjenta])
VALUES
    ('okulista', 2, 1),
    ('dermatolog', 3, 1),
    ('chirurg', 1, 2);

Zapytanie:

Kopiuj
declare @od date
declare @do date
set @od = '2016-11-05'
set @do = '2016-11-30'

select 
	@od as '@od' 
	,@do as '@do'
	,(select
	    imie as '@imie'
		,nazwisko as '@nazwisko'
		,(select
		     specjalnosc as 'wizyta/@specjalnosc'
			 ,liczba as 'wizyta'
		from
			spec
		where
			idpacjenta = pacjenci.id
		for xml path(''), type)
	from
	    pacjenci
	for xml path('pacjent'), type)
for xml path('StatystykaWizyt')

Zwróci:

Kopiuj
<StatystykaWizyt od="2016-11-05" do="2016-11-30">
  <pacjent imie="Jan" nazwisko="Kowalski">
    <wizyta specjalnosc="okulista">2</wizyta>
    <wizyta specjalnosc="dermatolog">3</wizyta>
  </pacjent>
  <pacjent imie="Marek" nazwisko="Nowak">
    <wizyta specjalnosc="chirurg">1</wizyta>
  </pacjent>
</StatystykaWizyt>
S9
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:31
0

Witam ponownie, to co zaproponowałeś było bardzo dobrze zrobione, lecz pojawiają się kolejne problemy, mianowicie nowe polecenia bazujące na tej samej bazie danych ;/

  1. Zdefiniuj schemat XML w języku XML Schema, który odpowiadać będzie strukturze
    pliku xml z terminami przyjęć lekarzy
  2. Utwórz tabelę w bazie danych o schemacie
    TerminuXML (doc XML(sch)- czyli wraz ze schematem, od Date, do Date)
  3. Wstaw do tabeli TerminyXML dane wygenerowane poleceniami select na istniejącej
    bazie danych (np. z okresami odpowiadającymi kolejnym tygodniom bądź dniom)
  4. Na podstawie tabeli TerminyXML wygeneruj dla zadanego zakresu następujące zestawienie
    ImięLekarza, NazwiskoLekarza, ileDniPrzyjmuje

z pierwszym i drugim nie ma problemu, ponieważ schemat wygeneruje za pomocą fro XML schema, drugie też jest łatwe, zwyczajna tabela tyle że jako typ wpisuję XML, tylko pytanie czy ta kolumna wtedy będzie przechowywała xml'a wraz ze schematem ?
schody zaczynają się przy 3 i 4 poleceniu, za które nie wiem jak się zabrać ;/

PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 3 godziny
  • Postów:3870
1

ad. 1 Nie do końca, musisz wygenerować schemat i dodać do kolekcji schematów, czyli tak (xsd wygenerowane automatem, nie sprawdzałem poprawności):

Kopiuj
CREATE XML SCHEMA COLLECTION sch AS
N'<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="StatystykaWizyt">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="pacjent" maxOccurs="unbounded" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="wizyta" maxOccurs="unbounded" minOccurs="0">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:byte">
                      <xs:attribute type="xs:string" name="specjalnosc" use="optional"/>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute type="xs:string" name="imie" use="optional"/>
            <xs:attribute type="xs:string" name="nazwisko" use="optional"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute type="xs:date" name="od"/>
      <xs:attribute type="xs:date" name="do"/>
    </xs:complexType>
  </xs:element>
</xs:schema>' ;
GO

ad.2
Nie do końca oprócz typu xml w nawiasach wpisujesz schemat z kolekcji z pkt.1, wtedy baza wie jak ma pilnować danych

Kopiuj
CREATE TABLE terminyXML (
    doc XML (sch)
   , od Date
   , do Date
)
GO

Do pkt 1 i2 zapoznaj się z tym: https://msdn.microsoft.com/pl-pl/library/ms176009(v=sql.110).aspx

ad. 3
No tu klasyczny insert

Kopiuj
DECLARE @od DATE
DECLARE @do DATE
SET @od = '2016-11-05'
SET @do = '2016-11-30'
 
insert into terminyXML Values (
(SELECT 
    @od AS '@od' 
    ,@do AS '@do'
    ,(SELECT
        imie AS '@imie'
        ,nazwisko AS '@nazwisko'
        ,(SELECT
             specjalnosc AS 'wizyta/@specjalnosc'
             ,liczba AS 'wizyta'
        FROM
            spec
        WHERE
            idpacjenta = pacjenci.id
        FOR xml path(''), TYPE)
    FROM
        pacjenci
    FOR xml path('pacjent'), TYPE)
FOR xml path('StatystykaWizyt'), TYPE)
, @od
, @do)

Tu musisz zwrócić uwagę, że dopisałem dyrektywę TYPE na końcu podzapytania. Szczegóły tutaj: https://msdn.microsoft.com/en-us/library/ms190025.aspx

ad. 4
Tu jest trochę zabawy, ale nie napisze tego z głowy, a teraz nie mam dostepu do sql-a w tej chwili, warto zacząć tutaj:
https://technet.microsoft.com/en-us/library/ms190798.aspx
Jak sobie nie poradzisz to daj znać

edytowany 1x, ostatnio: Panczo
S9
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:31
0

w pierwszym gdy wygenerowałem schemat z automatu zrobiło mi takie coś i to się różni od tego co Ty zaproponowałeś

Kopiuj
`<xsd:schema targetNamespace="urn:schemas-microsoft-com:sql:SqlRowSet1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="http://schemas.microsoft.com/sqlserver/2004/sqltypes" elementFormDefault="qualified">
  <xsd:import namespace="http://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="http://schemas.microsoft.com/sqlserver/2004/sqltypes/sqltypes.xsd" />
  <xsd:element name="StatystykaWizyt">
    <xsd:complexType mixed="true">
      <xsd:sequence>
        <xsd:any processContents="skip" minOccurs="0" maxOccurs="unbounded" />
      </xsd:sequence>
      <xsd:attribute name="_x0040_od" type="sqltypes:date" />
      <xsd:attribute name="_x0040_do" type="sqltypes:date" />
    </xsd:complexType>
  </xsd:element>
</xsd:schema>
 
``
PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 3 godziny
  • Postów:3870
0

A rozumiesz co robi Twoje XSD?
Bo jest poprawne, pytanie tylko czy spełnia Twoje oczekiwania.

Wg. tego co przedstawiles, sprawdzany będzie tylko element Statystykawizyt z argumentami od i do, a to co w środku nie będzie sprawdzane...

Ja bym szedł raczej w strone czegos takiego:

Kopiuj
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="StatystykaWizyt">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="pacjent" maxOccurs="unbounded" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="wizyta" maxOccurs="unbounded" minOccurs="0">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:string">
                      <xs:attribute type="xs:string" name="specjalnosc" use="required"/>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute type="xs:string" name="imie" use="required"/>
            <xs:attribute type="xs:string" name="nazwisko" use="required"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute type="xs:string" name="od"/>
      <xs:attribute type="xs:string" name="do"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
S9
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:31
0

nie bardzo właśnie rozumiem tego mojego xsd, pytanie, jak Ty wygenerowałeś ten Twój ?

PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 3 godziny
  • Postów:3870
0

Ten ostatni w PHPStorm, ale to bez znaczenia (wprowadziłem) do niego pewne modyfikacje.

Tu bardziej chodzi o to, że mam wrażenie ze nawet nie docztales jak ugryźć temat xsd. Nie da się zrobić wszystkiego samymi kreatorami, jak nie rozumie się otrzymanego efektu...

S9
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:31
0

Mamy do dyspozycji jedynie mssql

PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 3 godziny
  • Postów:3870
0

Do pisania xsd wystarczy notatnik czyli w ssms tez napiszesz...
Powtarzam twój nie jest zły, ale nie sprawdza struktury dokumentu. Nie wiem jakie masz założenia. Zrobić byle było czy faktycznie z sensem

S9
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:31
0
Kopiuj
 <?xml version="1.0" encoding="utf-8" ?>
<!-- Created with Liquid XML Studio 1.0.8.0 (http://www.liquid-technologies.com) -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Przychodnia">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="Lekarze">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" maxOccurs="unbounded" name="Lekarz">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element minOccurs="0" name="Terminy">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element minOccurs="0" maxOccurs="unbounded" name="Termin">
                            <xs:complexType>
                              <xs:attribute name="data" type="xs:string" use="optional" />
                              <xs:attribute name="godzina_od" type="xs:string" use="optional" />
                              <xs:attribute name="godzina_do" type="xs:string" use="optional" />
                              <xs:attribute name="nazwaGabinetu" type="xs:string" use="optional" />
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="imie" type="xs:string" use="optional" />
                  <xs:attribute name="nazwisko" type="xs:string" use="optional" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="od" type="xs:string" use="optional" />
      <xs:attribute name="do" type="xs:string" use="optional" />
    </xs:complexType>
  </xs:element>
</xs:schema>

witam chłopaki ponownie, mógłby ktoś rzucić okiem czy ten schemat byłby ok do takiego XML'a :

Kopiuj
 
declare @od date
declare @do date
set @od = '2016-11-05'
set @do = '2016-11-30'
--drop table #nowa
create table #nowa (od date, do date)
insert into #nowa values(@od,@do)

select od, do,
	(select 
	L.Imie as imie
	,L.Nazwisko as nazwisko
	,
		(																	
  		select
  		T2.Dzien as data
  		,T2.OdGodziny as godzina_od
  		,T2.DoGodziny as godzina_do
  		,G2.Nazwa as nazwaGabinetu
  
  		from
  		Terminy T2 join Gabinety G2 on G2.Id=T2.IdGabinetu
  		where T2.IdLekarza=L.Id
   		for xml raw ('Termin'), type
		) as 'Terminy'
	from 
	Lekarze L 
	for xml  raw('Lekarz'), type
	)as 'Lekarze' 
	from #nowa
	for xml raw ('Przychodnia')




PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 3 godziny
  • Postów:3870
0
  1. Nie podałes do jakiego XML-a to stosujesz.
  2. Sprawdzenie poprawności polega na tym, że musimy wiedzieć jakie ma mieć wymagania spełnione ten dokument, a tego nie podałeś, więc nie da się odpowiedzieć na to pytanie
S9
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:31
0

sorki, tak wygląda ten XML

Kopiuj
 <Przychodnia od="2016-11-05" do="2016-11-30">
  <Lekarze>
    <Lekarz imie="Jacek" nazwisko="Paździoch">
      <Terminy>
        <Termin data="2016-11-21" godzina_od="10:00:00" godzina_do="12:00:00" nazwaGabinetu="Socjal" />
        <Termin data="2016-11-28" godzina_od="11:00:00" godzina_do="13:00:00" nazwaGabinetu="Socjal" />
      </Terminy>
    </Lekarz>
    <Lekarz imie="Alona" nazwisko="Nowak">
      <Terminy>
        <Termin data="2016-11-22" godzina_od="12:00:00" godzina_do="14:00:00" nazwaGabinetu="Socjal" />
      </Terminy>
    </Lekarz>
    <Lekarz imie="Helga" nazwisko="Kowalska">
      <Terminy>
        <Termin data="2016-11-23" godzina_od="15:00:00" godzina_do="16:00:00" nazwaGabinetu="Socjal" />
      </Terminy>
    </Lekarz>
    <Lekarz imie="Marcin" nazwisko="Krzynówek">
      <Terminy>
        <Termin data="2016-11-24" godzina_od="10:00:00" godzina_do="13:00:00" nazwaGabinetu="Socjal" />
      </Terminy>
    </Lekarz>
    <Lekarz imie="Jadwiga" nazwisko="Kiepska">
      <Terminy>
        <Termin data="2016-11-25" godzina_od="09:00:00" godzina_do="11:00:00" nazwaGabinetu="Socjal" />
      </Terminy>
    </Lekarz>
  </Lekarze>
</Przychodnia>
PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 3 godziny
  • Postów:3870
0

No to jeszcze pytanie, czy taki XML jest poprawny bo xsd na to pozwala:

Kopiuj
 <Przychodnia od="2016-11-05">
  <Lekarze>
    <Lekarz imie="Jacek">
      <Terminy>
        <Termin data="2016-11-21" godzina_od="10:00:00" godzina_do="12:00:00" nazwaGabinetu="Socjal" />
        <Termin data="2016-11-28" godzina_od="11:00:00" godzina_do="13:00:00" nazwaGabinetu="Socjal" />
      </Terminy>
    </Lekarz>
    <Lekarz imie="Alona" nazwisko="Nowak">
      <Terminy>
      </Terminy>
    </Lekarz>
    <Lekarz imie="Helga" nazwisko="Kowalska">
      <Terminy>
        <Termin data="2016-11-23" godzina_od="15:00:00" godzina_do="16:00:00" />
      </Terminy>
    </Lekarz>
    <Lekarz imie="Marcin" nazwisko="Krzynówek">
      <Terminy>
        <Termin data="2016-11-24" nazwaGabinetu="Socjal" />
      </Terminy>
    </Lekarz>
    <Lekarz imie="Jadwiga" nazwisko="Kiepska">
      <Terminy>
        <Termin nazwaGabinetu="Socjal" />
      </Terminy>
    </Lekarz>
  </Lekarze>
</Przychodnia>
S9
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:31
0

no teraz widzę, że nie do końca ;/

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)